com.hectorsector.book.status
A reading status change event for a book. Records are append-only and timestamped — each status transition creates a new record rather than mutating an existing one. The current status of a book is derived by taking the most recent status record (by createdAt) referencing that book.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | book.hectorsector.com |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"didNotFinish": {
"description": "The user has indicated they won't complete this book.",
"type": "token"
},
"finished": {
"description": "The user has completed the book.",
"type": "token"
},
"main": {
"description": "A reading status change event for a book. Records are append-only and timestamped — each status transition creates a new record rather than mutating an existing one. The current status of a book is derived by taking the most recent status record (by createdAt) referencing that book.",
"key": "tid",
"record": {
"properties": {
"book": {
"description": "Strong reference to the com.hectorsector.book.book anchor this status applies to.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"createdAt": {
"description": "When the status change occurred. May differ from the record's server-side timestamp when backfilling history from imports (e.g. StoryGraph CSV).",
"format": "datetime",
"type": "string"
},
"status": {
"description": "The reading status being set. Open union — future status tokens may be added; consumers should handle unknown values gracefully.",
"knownValues": [
"com.hectorsector.book.status#wantToRead",
"com.hectorsector.book.status#reading",
"com.hectorsector.book.status#paused",
"com.hectorsector.book.status#didNotFinish",
"com.hectorsector.book.status#finished"
],
"maxLength": 128,
"type": "string"
}
},
"required": [
"book",
"status",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"paused": {
"description": "The user has paused reading the book and hasn't yet decided if they will continue.",
"type": "token"
},
"reading": {
"description": "The user is currently reading the book.",
"type": "token"
},
"wantToRead": {
"description": "The user intends to read the book.",
"type": "token"
}
},
"id": "com.hectorsector.book.status",
"lexicon": 1
}