pub.byline.book
An author-authoritative record of a published or forthcoming work, signed by the author's own repository.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | byline.pub |
| Indexed |
Checks
Validunlimited-stringdefs.main.record.properties.languageNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.statusNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "An author-authoritative record of a published or forthcoming work, signed by the author's own repository.",
"key": "tid",
"record": {
"properties": {
"authors": {
"description": "Credited contributors. The repo owner is presumed primary author unless roles say otherwise.",
"items": {
"ref": "lex:pub.byline.defs#contributor",
"type": "ref"
},
"type": "array"
},
"copyrightYear": {
"description": "Year of first copyright for the work.",
"type": "integer"
},
"cover": {
"accept": [
"image/png",
"image/jpeg",
"image/webp"
],
"description": "Cover image, stored as a blob in the author's own repository.",
"maxSize": 2000000,
"type": "blob"
},
"coverAlt": {
"description": "Alt text describing the cover image, for accessibility.",
"maxLength": 1000,
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"description": {
"description": "Long blurb / marketing copy. Markdown; consumers render or strip.",
"maxGraphemes": 5000,
"type": "string"
},
"discussions": {
"description": "Strong references to atproto-native discussion threads about this work (e.g. a Bluesky post, a pub.byline.comment). Off-protocol social goes in links[] with kind=discussion or social.",
"items": {
"ref": "lex:com.atproto.repo.strongRef",
"type": "ref"
},
"type": "array"
},
"editions": {
"items": {
"ref": "lex:pub.byline.defs#edition",
"type": "ref"
},
"type": "array"
},
"genres": {
"description": "Shelf-category genres for the work. Freeform; byline's authoring tool suggests existing values to encourage convergence, but no value is enforced.",
"items": {
"maxGraphemes": 128,
"maxLength": 128,
"type": "string"
},
"type": "array"
},
"identifiers": {
"ref": "lex:pub.byline.defs#identifiers",
"type": "ref"
},
"language": {
"description": "BCP-47 language tag, e.g. en, en-CA.",
"type": "string"
},
"links": {
"description": "Work-level links not tied to a specific edition.",
"items": {
"ref": "lex:pub.byline.defs#link",
"type": "ref"
},
"type": "array"
},
"pageCount": {
"description": "Work-level page count. An edition's pageCount overrides this when present.",
"minimum": 1,
"type": "integer"
},
"publicationDate": {
"description": "Actual or planned first-publication date.",
"format": "datetime",
"type": "string"
},
"publisher": {
"description": "Work-level publisher. An edition's publisher overrides this when present.",
"maxLength": 256,
"type": "string"
},
"series": {
"description": "Series membership, if any. Book points at the series; the series record never points back.",
"ref": "lex:pub.byline.defs#seriesMembership",
"type": "ref"
},
"shortDescription": {
"description": "Card and grid summary. Markdown; consumers render or strip.",
"maxGraphemes": 500,
"type": "string"
},
"status": {
"knownValues": [
"pub.byline.defs#published",
"pub.byline.defs#forthcoming",
"pub.byline.defs#draft",
"pub.byline.defs#outOfPrint"
],
"type": "string"
},
"subtitle": {
"maxLength": 512,
"type": "string"
},
"tagline": {
"description": "One-line hook for hero or featured display. Plain text, no markdown.",
"maxGraphemes": 200,
"type": "string"
},
"tags": {
"description": "Freeform descriptors. Genre lives in genres[]; tags are everything else.",
"items": {
"maxGraphemes": 128,
"maxLength": 128,
"type": "string"
},
"type": "array"
},
"title": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"updatedAt": {
"format": "datetime",
"type": "string"
}
},
"required": [
"title",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "pub.byline.book",
"lexicon": 1
}