A single external identifier for a work or edition, such as an ISBN or an Open Library key.
Properties
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).
maxLength: 64 bytes
Known values: isbn-10, isbn-13, ol-work, ol-edition, bookhive, dnb, gnd, viaf, wikidata, oclc
The identifier value itself, formatted according to scheme (for example the raw ISBN digits, or an Open Library key such as OL12345W).
maxLength: 256 bytes
View raw schema
{
"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"
}
A portable reference to a work or edition in the Dracome catalog, intended to remain resolvable outside of Dracome's own systems.
Properties
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 bytes
External identifiers (ISBNs, Open Library keys, etc.) that let any client resolve this work or edition without depending on Dracome-specific data.
maxLength: 16 items
Optional canonical URI for this work or edition. Runtime validation MUST restrict this to https:// or at:// values.
View raw schema
{
"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"
}
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
Ordered list of contributors (authors, translators, illustrators, etc.) credited on the work or edition. May be empty when the work has no credited contributor.
maxLength: 32 items
Edition-scoped metadata of the targeted edition. Always present.
Secondary title of the work, present only when the work has one, sourced from the work's own canonical subtitle.
maxLength: 1024 bytes
Primary title of the work, sourced from the work's own canonical title.
maxLength: 1024 bytes
Structural content form of the referenced work (novel, poetry, comic, manga, audio_drama, or non_fiction).
View raw schema
{
"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"
}
Edition-scoped metadata nested inside #catalogSnapshot. All fields are independently optional.
Properties
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
Physical or media format of the specific edition, if known.
ISO 639-1 or BCP 47 language code for the edition language.
Number of pages in the specific edition, if known. Not populated when the edition's format is audiobook; see durationSeconds.
minimum: 1
Year the specific edition was published. This is the edition's publication year, not necessarily the original work's first publication year.
Name of the publisher of the specific edition, if known.
maxLength: 512 bytes
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 bytes
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 bytes
View raw schema
{
"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"
}
Exact target identity for an edition-scoped record. Carries the edition and its parent work; there is no work-only target.
Properties
The specific edition being targeted. Always present.
The work being targeted by this record. Always present.
View raw schema
{
"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"
}
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.
ConstraintsmaxLength: 64 bytes
paperback hardcover ebook audiobook board_book spiral_bound library_binding pamphlet
View raw schema
{
"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"
],
"maxLength": 64,
"type": "string"
}
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
Optional reference to this person's contributor profile, when such a profile is known to exist on their PDS.
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 bytes
The role this person held in creating this work or edition (e.g. author, translator, illustrator).
View raw schema
{
"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"
}
Structural content form of the work (not its distribution format).
ConstraintsmaxLength: 64 bytes
novel poetry comic manga audio_drama non_fiction
View raw schema
{
"description": "Structural content form of the work (not its distribution format).",
"knownValues": [
"novel",
"poetry",
"comic",
"manga",
"audio_drama",
"non_fiction"
],
"maxLength": 64,
"type": "string"
}