social.dracome.work.defs

dracome.social

Documentation

catalogIdentifier object

A single external identifier for a work or edition, such as an ISBN or an Open Library key.

Properties

scheme string Required

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
value string Required

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"
}
catalogRef object

A portable reference to a work or edition in the Dracome catalog, intended to remain resolvable outside of Dracome's own systems.

Properties

dracomeKey string Optional

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
identifiers array of ref#catalogIdentifier Optional

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
uri string uri Optional

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"
}
catalogSnapshot 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

contributors array of ref#snapshotContributor Required

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
subtitle string Optional

Secondary title of the work, present only when the work has one, sourced from the work's own canonical subtitle.

maxLength: 1024 bytes
title string Required

Primary title of the work, sourced from the work's own canonical title.

maxLength: 1024 bytes
workType ref #workType Required

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"
}
catalogSnapshotEdition object

Edition-scoped metadata nested inside #catalogSnapshot. All fields are independently optional.

Properties

durationSeconds integer Optional

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
format ref #editionFormat Optional

Physical or media format of the specific edition, if known.

language string language Optional

ISO 639-1 or BCP 47 language code for the edition language.

pageCount integer Optional

Number of pages in the specific edition, if known. Not populated when the edition's format is audiobook; see durationSeconds.

minimum: 1
publicationYear integer Optional

Year the specific edition was published. This is the edition's publication year, not necessarily the original work's first publication year.

publisherName string Optional

Name of the publisher of the specific edition, if known.

maxLength: 512 bytes
subtitle string Optional

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
title string Optional

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"
}
catalogTarget object

Exact target identity for an edition-scoped record. Carries the edition and its parent work; there is no work-only target.

Properties

edition ref #catalogRef Required

The specific edition being targeted. Always present.

work ref #catalogRef Required

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"
}
editionFormat string

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
Known Values (other values may be valid)
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"
}
snapshotContributor object

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

name string Required

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
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"
}
workType string

Structural content form of the work (not its distribution format).

ConstraintsmaxLength: 64 bytes
Known Values (other values may be valid)
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"
}

Lexicon Garden

@