social.dracome.work.defs
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"catalogIdentifier": {
"description": "A single external identifier for a work or edition, such as an ISBN or an Open Library key.",
"properties": {
"scheme": {
"description": "The identifier scheme: `isbn-10` (ISBN-10), `isbn-13` (ISBN-13), `ol-work` (Open Library work key, e.g. OL12345W), `ol-edition` (Open Library edition key, e.g. OL12345M), `bookhive` (BookHive proprietary ID), `dnb` (German National Library ID), `gnd` (GND authority record number), `viaf` (VIAF ID), `wikidata` (Wikidata entity), `oclc` (OCLC WorldCat ID).",
"knownValues": [
"isbn-10",
"isbn-13",
"ol-work",
"ol-edition",
"bookhive",
"dnb",
"gnd",
"viaf",
"wikidata",
"oclc"
],
"maxLength": 64,
"type": "string"
},
"value": {
"description": "The identifier value itself, formatted according to scheme (for example the raw ISBN digits, or an Open Library key such as OL12345W).",
"maxLength": 256,
"type": "string"
}
},
"required": [
"scheme",
"value"
],
"type": "object"
},
"catalogRef": {
"description": "A portable reference to a work or edition in the Dracome catalog, intended to remain resolvable outside of Dracome's own systems.",
"properties": {
"dracomeKey": {
"description": "Optional proprietary Dracome catalog key for this work or edition. Dracome's own systems use it both for internal lookups and as the identifier accepted by Dracome's XRPC API calls; it is not a portable identifier, so consumers outside Dracome's own systems should resolve via identifiers instead.",
"maxLength": 128,
"type": "string"
},
"identifiers": {
"description": "External identifiers (ISBNs, Open Library keys, etc.) that let any client resolve this work or edition without depending on Dracome-specific data.",
"items": {
"ref": "#catalogIdentifier",
"type": "ref"
},
"maxLength": 16,
"type": "array"
},
"uri": {
"description": "Optional canonical URI for this work or edition. Runtime validation MUST restrict this to https:// or at:// values.",
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"catalogSnapshot": {
"description": "A portable, identity-oriented snapshot of combined work-and-edition catalog metadata, captured at record write time. Alongside the record's target, it lets any AT Protocol consumer independently resolve this work or edition without depending on Dracome as a central catalog authority. Work-scoped fields are always present at the top level; edition-scoped fields are grouped under the nested `edition` sub-object, which is always present.",
"properties": {
"contributors": {
"description": "Ordered list of contributors (authors, translators, illustrators, etc.) credited on the work or edition. May be empty when the work has no credited contributor.",
"items": {
"ref": "#snapshotContributor",
"type": "ref"
},
"maxLength": 32,
"type": "array"
},
"edition": {
"description": "Edition-scoped metadata of the targeted edition. Always present.",
"ref": "#catalogSnapshotEdition",
"type": "ref"
},
"subtitle": {
"description": "Secondary title of the work, present only when the work has one, sourced from the work's own canonical subtitle.",
"maxLength": 1024,
"type": "string"
},
"title": {
"description": "Primary title of the work, sourced from the work's own canonical title.",
"maxLength": 1024,
"type": "string"
},
"workType": {
"description": "Structural content form of the referenced work (novel, poetry, comic, manga, audio_drama, or non_fiction).",
"ref": "#workType",
"type": "ref"
}
},
"required": [
"workType",
"title",
"contributors",
"edition"
],
"type": "object"
},
"catalogSnapshotEdition": {
"description": "Edition-scoped metadata nested inside #catalogSnapshot. All fields are independently optional.",
"properties": {
"durationSeconds": {
"description": "Total duration in seconds for audiobook editions, captured at record write time. Only populated when the edition's format is audiobook; pageCount and durationSeconds are never both set on the same snapshot.",
"minimum": 0,
"type": "integer"
},
"format": {
"description": "Physical or media format of the specific edition, if known.",
"ref": "#editionFormat",
"type": "ref"
},
"language": {
"description": "ISO 639-1 or BCP 47 language code for the edition language.",
"format": "language",
"type": "string"
},
"pageCount": {
"description": "Number of pages in the specific edition, if known. Not populated when the edition's format is audiobook; see durationSeconds.",
"minimum": 1,
"type": "integer"
},
"publicationYear": {
"description": "Year the specific edition was published. This is the edition's publication year, not necessarily the original work's first publication year.",
"type": "integer"
},
"publisherName": {
"description": "Name of the publisher of the specific edition, if known.",
"maxLength": 512,
"type": "string"
},
"subtitle": {
"description": "Secondary title of the specific edition, present only when the edition has one. When present, this is authoritative for display over the top-level work subtitle.",
"maxLength": 1024,
"type": "string"
},
"title": {
"description": "Primary title of the specific edition, present only when it is captured independently of the work's canonical title — for example a translated edition's title. When present, this is authoritative for display over the top-level work title.",
"maxLength": 1024,
"type": "string"
}
},
"type": "object"
},
"catalogTarget": {
"description": "Exact target identity for an edition-scoped record. Carries the edition and its parent work; there is no work-only target.",
"properties": {
"edition": {
"description": "The specific edition being targeted. Always present.",
"ref": "#catalogRef",
"type": "ref"
},
"work": {
"description": "The work being targeted by this record. Always present.",
"ref": "#catalogRef",
"type": "ref"
}
},
"required": [
"work",
"edition"
],
"type": "object"
},
"editionFormat": {
"description": "Physical or media format of a specific edition. The set of known values is derived from the Dracome catalog's own normalized edition-format values and may grow; consumers MUST tolerate unknown values.",
"knownValues": [
"paperback",
"hardcover",
"ebook",
"audiobook",
"board_book",
"spiral_bound",
"library_binding",
"pamphlet"
],
"type": "string"
},
"snapshotContributor": {
"description": "A person credited on a work or edition. The role and display name are always present. The profile reference is optional, carrying the AT-URI of that person's contributor profile when one exists and is known.",
"properties": {
"contributor": {
"description": "Optional reference to this person's contributor profile, when such a profile is known to exist on their PDS.",
"ref": "social.dracome.contributor.defs#contributorProfileRef",
"type": "ref"
},
"name": {
"description": "Display name of the credited person, in natural reading order (given name(s) before family name, e.g. 'Jane Doe', not library-cataloging-style 'Doe, Jane').",
"maxLength": 256,
"type": "string"
},
"role": {
"description": "The role this person held in creating this work or edition (e.g. author, translator, illustrator).",
"ref": "social.dracome.contributor.defs#contributorRole",
"type": "ref"
}
},
"required": [
"name",
"role"
],
"type": "object"
},
"workType": {
"description": "Structural content form of the work (not its distribution format).",
"knownValues": [
"novel",
"poetry",
"comic",
"manga",
"audio_drama",
"non_fiction"
],
"type": "string"
}
},
"id": "social.dracome.work.defs",
"lexicon": 1
}
Metadata
- DID
-
did:plc:66dyrt2bmghwlmdteyizs5l3 - CID
-
bafyreifstcjvio4pk7rxpijhnrsfdnsym7tddqt5tjwm4irwrppuf22vs4 - Indexed At
- 2026-10-14 19:42 UTC
- AT-URI
-
at://did:plc:66dyrt2bmghwlmdteyizs5l3/com.atproto.lexicon.schema/social.dracome.work.defs
Version History (2 versions)
Referenced Schemas (2)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
A submission record carrying candidate catalog data for an edition of a previously-submitted work, published by a trusted submitter to their own PDS. Repeatable; a submitter may create, update, or delete edition-submiss…
-
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.
-
A person credited on the work.
-
social.dracome.contributor.defs not from the namespace authority
An external identifier for a contributor from a known authority (GND, VIAF, Wikidata, or Open Library).
-
com.hectorsector.book.book record
A book in a user's library. An anchor record referenced by status and other book-related events. Metadata (title, authors, cover, etc.) is resolved at display time from the identifier — it is not stored in the record.…