docs: def is_valid_pid_for_create(did):
      """Return True if ``did`` is the PID of an object that can be created with
      MNStorage.create() or MNStorage.update().
  
      To be valid for create() and update(), the DID:
  
      - Must not be the PID of an object that exists on this MN
      - Must not be a known SID known to this MN
      - Must not have been accepted for replication by this MN.
      - Must not be referenced as obsoletes or obsoletedBy in an object that exists on
        this MN
  
      In addition, if the DID exists in a resource map:
  
      - If RESOURCE_MAP_CREATE = 'reserve':
  
        - The DataONE subject that is making the call must have write or changePermission
          on the resource map.
  
      """
      # logger.debug('existing: {}'.format(is_existing_object(did)))
      # logger.debug('sid: {}'.format(is_sid(did)))
      # logger.debug('local_replica: {}'.format(is_local_replica(did)))
      # logger.debug('revision: {}'.format(d1_gmn.app.revision.is_revision(did)))
      return (
          not is_existing_object(did)
          and not is_sid(did)
          and not is_local_replica(did)
          and not d1_gmn.app.revision.is_revision(did)
          and d1_gmn.app.resource_map.is_sciobj_valid_for_create()
      )