blue.skybind.comic
A comic manifest presenting a Bluesky post thread as a paginated comic. The record key SHOULD equal the rkey of the subject post so that clients can look up this record directly from a post. `posts`, when present, is an ordered snapshot of the thread composition; readers may alternatively reconstruct pages by walking the self-reply chain from `subject`.
Details · record, key any
| Kind | record |
|---|---|
| Record key | any |
| Authority | skybind.blue |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A comic manifest presenting a Bluesky post thread as a paginated comic. The record key SHOULD equal the rkey of the subject post so that clients can look up this record directly from a post. `posts`, when present, is an ordered snapshot of the thread composition; readers may alternatively reconstruct pages by walking the self-reply chain from `subject`.",
"key": "any",
"record": {
"properties": {
"createdAt": {
"description": "Client-declared timestamp when this record was created.",
"format": "datetime",
"type": "string"
},
"labels": {
"description": "Self labels for this comic as a whole. Labels on the referenced posts remain authoritative for the images themselves.",
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"language": {
"description": "Primary language of the comic content.",
"format": "language",
"type": "string"
},
"pageCount": {
"description": "Total page (image) count at the time of writing. Informational.",
"minimum": 1,
"type": "integer"
},
"posts": {
"description": "Ordered snapshot of the posts composing this comic as of the last record update. The first item MUST equal `subject`. Readers MAY render pages directly from this list without walking the reply graph; the live self-reply chain remains the source for pages appended after the record was written. Images are always fetched from the referenced posts' embeds in listed order; they are never duplicated here.",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"minLength": 1,
"type": "array"
},
"startSide": {
"default": "right",
"description": "Which side the first page is placed on in two-page spread view. Distinct from reading direction.",
"knownValues": [
"right",
"left"
],
"maxLength": 32,
"type": "string"
},
"subject": {
"description": "Strong reference to the root post (source of the first page). Expected to be authored by the same account as this record.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"title": {
"description": "Optional display title of the comic.",
"maxGraphemes": 100,
"maxLength": 1000,
"type": "string"
},
"url": {
"description": "Canonical reader URL where this comic can be read. Clients may present this as a 'read' action.",
"format": "uri",
"type": "string"
}
},
"required": [
"subject",
"url",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "blue.skybind.comic",
"lexicon": 1
}