# social.dracome.catalog.submission.work

> Published by [dracome.social](https://lexicon.garden/identity/did:plc:66dyrt2bmghwlmdteyizs5l3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:66dyrt2bmghwlmdteyizs5l3/social.dracome.catalog.submission.work)
- [Documentation](https://lexicon.garden/lexicon/did:plc:66dyrt2bmghwlmdteyizs5l3/social.dracome.catalog.submission.work/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:66dyrt2bmghwlmdteyizs5l3/social.dracome.catalog.submission.work/examples)

## Definitions

### `social.dracome.catalog.submission.work#derivedFromRef`

**Type**: `object`

A reference to the upstream record this submission's data was derived from. For Byline submissions, this points to the author's own pub.byline.book record. For direct Dracome submissions, derivedFrom is absent.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` (cid) | No | Optional content hash at time of derivation; informational only, detects drift. |
| `nsid` | `string` (nsid) | No | Optional NSID of the referenced record's lexicon (e.g. 'pub.byline.book'); informational, since source shapes vary per trusted app. |
| `uri` | `string` (at-uri) | Yes | AT-URI of the referenced record. |

### `social.dracome.catalog.submission.work`

**Type**: `record`

A submission record carrying candidate catalog data for a work, published by a trusted submitter to their own PDS. Repeatable; a submitter may create, update, or delete work-submission records over time.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `contributors` | `array` | Yes | Required ordered list of credited contributors with roles, each carrying a resolvable profile reference. |
| `coverUri` | `string` (uri) | No | Optional URL to a cover image for the work, hosted by the submitter. Runtime validation MUST restrict this to https:// URLs. |
| `createdAt` | `string` (datetime) | Yes | ISO 8601 UTC timestamp with trailing Z when this record was created. |
| `derivedFrom` | `ref` → `#derivedFromRef` | No | Optional reference to the record this submission's data was derived from (e.g., a pub.byline.book record for Byline submissions). Carries no meaning to Dracome's ingestion; exists for downstream consumers to walk provenance. |
| `description` | `string` | No | Optional free-text description or summary of the work. |
| `firstPublicationDate` | `string` | No | Optional original publication date of the work, at whatever precision is known (e.g., year only, or full date). |
| `genres` | `array` | No | Optional controlled list of genres, including subgenres. Known values form a controlled vocabulary that may grow; consumers MUST tolerate unknown values. Free-text subject tags are in the subjects field instead. |
| `identifiers` | `array` | No | Optional external identifiers (ISBN, Open Library key, etc.), plus the submitter's proprietary identifier (e.g. bylinePub, dracomeKey). |
| `sourceUri` | `string` (uri) | No | Optional URL to this work's page on the submitter's own site. |
| `subjects` | `array` | No | Optional free-text subject and topic tags. |
| `subtitle` | `string` | No | Optional secondary title. |
| `title` | `string` | Yes | Primary title of the work. |
| `updatedAt` | `string` (datetime) | No | Optional ISO 8601 UTC timestamp with trailing Z when this record was last updated by republishing. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "derivedFromRef": {
      "description": "A reference to the upstream record this submission's data was derived from. For Byline submissions, this points to the author's own pub.byline.book record. For direct Dracome submissions, derivedFrom is absent.",
      "properties": {
        "cid": {
          "description": "Optional content hash at time of derivation; informational only, detects drift.",
          "format": "cid",
          "type": "string"
        },
        "nsid": {
          "description": "Optional NSID of the referenced record's lexicon (e.g. 'pub.byline.book'); informational, since source shapes vary per trusted app.",
          "format": "nsid",
          "type": "string"
        },
        "uri": {
          "description": "AT-URI of the referenced record.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    },
    "main": {
      "description": "A submission record carrying candidate catalog data for a work, published by a trusted submitter to their own PDS. Repeatable; a submitter may create, update, or delete work-submission records over time.",
      "key": "tid",
      "record": {
        "properties": {
          "contributors": {
            "description": "Required ordered list of credited contributors with roles, each carrying a resolvable profile reference.",
            "items": {
              "ref": "social.dracome.contributor.defs#creditedContributor",
              "type": "ref"
            },
            "maxLength": 64,
            "minLength": 1,
            "type": "array"
          },
          "coverUri": {
            "description": "Optional URL to a cover image for the work, hosted by the submitter. Runtime validation MUST restrict this to https:// URLs.",
            "format": "uri",
            "type": "string"
          },
          "createdAt": {
            "description": "ISO 8601 UTC timestamp with trailing Z when this record was created.",
            "format": "datetime",
            "type": "string"
          },
          "derivedFrom": {
            "description": "Optional reference to the record this submission's data was derived from (e.g., a pub.byline.book record for Byline submissions). Carries no meaning to Dracome's ingestion; exists for downstream consumers to walk provenance.",
            "ref": "#derivedFromRef",
            "type": "ref"
          },
          "description": {
            "description": "Optional free-text description or summary of the work.",
            "maxLength": 8192,
            "type": "string"
          },
          "firstPublicationDate": {
            "description": "Optional original publication date of the work, at whatever precision is known (e.g., year only, or full date).",
            "maxLength": 64,
            "type": "string"
          },
          "genres": {
            "description": "Optional controlled list of genres, including subgenres. Known values form a controlled vocabulary that may grow; consumers MUST tolerate unknown values. Free-text subject tags are in the subjects field instead.",
            "items": {
              "knownValues": [
                "romance",
                "romantic_comedy",
                "contemporary_romance",
                "workplace_romance",
                "wholesome_clean_romance",
                "college_university_romance",
                "historical_romance",
                "western_rural_romance",
                "love_triangle_romance",
                "unlikely_lovers_romance",
                "romantic_suspense",
                "sports_romance",
                "uniform_romance",
                "medical_romance",
                "rich_famous_romance",
                "polyamory_romance",
                "fantasy_paranormal_romance",
                "time_travel_romance",
                "dark_romance",
                "bad_boy_bad_girl_romance",
                "erotic_romance",
                "fantasy",
                "science_fiction",
                "crime_mystery",
                "thriller_suspense",
                "horror",
                "biography",
                "history",
                "self_help",
                "young_adult",
                "childrens",
                "reference",
                "religion_spirituality"
              ],
              "maxLength": 64,
              "type": "string"
            },
            "maxLength": 8,
            "type": "array"
          },
          "identifiers": {
            "description": "Optional external identifiers (ISBN, Open Library key, etc.), plus the submitter's proprietary identifier (e.g. bylinePub, dracomeKey).",
            "items": {
              "ref": "social.dracome.work.defs#catalogIdentifier",
              "type": "ref"
            },
            "maxLength": 16,
            "type": "array"
          },
          "sourceUri": {
            "description": "Optional URL to this work's page on the submitter's own site.",
            "format": "uri",
            "type": "string"
          },
          "subjects": {
            "description": "Optional free-text subject and topic tags.",
            "items": {
              "maxLength": 512,
              "type": "string"
            },
            "maxLength": 32,
            "type": "array"
          },
          "subtitle": {
            "description": "Optional secondary title.",
            "maxLength": 1024,
            "type": "string"
          },
          "title": {
            "description": "Primary title of the work.",
            "maxLength": 1024,
            "type": "string"
          },
          "updatedAt": {
            "description": "Optional ISO 8601 UTC timestamp with trailing Z when this record was last updated by republishing.",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "title",
          "contributors",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "social.dracome.catalog.submission.work",
  "lexicon": 1
}
```
