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
Kindrecord
Record keytid
Authoritybook.hectorsector.com
Indexed

Record

record · key tid

Properties

book

requiredref

Strong reference to the com.hectorsector.book.book anchor this status applies to.

createdAt

requiredstring · datetime

When the status change occurred. May differ from the record's server-side timestamp when backfilling history from imports (e.g. StoryGraph CSV).

status

requiredstring

The reading status being set. Open union — future status tokens may be added; consumers should handle unknown values gracefully.

  • maxLength: 128
  • 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

#didNotFinish

token

The user has indicated they won't complete this book.

#finished

token

The user has completed the book.

#paused

token

The user has paused reading the book and hasn't yet decided if they will continue.

#reading

token

The user is currently reading the book.

#wantToRead

token

The user intends to read the book.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Where the reader stands with a Work. One per Work: the record key is the Work's Catalog identifier. Exists with or without a Copy. No record means unread.

  • social.dracome.library.state

    record not from the namespace authority

    A reading-state record for one edition per actor. Duplicate convention: the rkey is a TID minted once at first create and never changes. Several records may exist for one actor and edition (for example from out-of-band writers); consumers SHOULD treat the record with the greatest `updatedAt` (falling back to `createdAt`) as the winner and break ties by the lowest TID, ignoring the others. This is a convention, not an enforced contract: AppViews MUST tolerate a differing winner, and may see a rec

  • A reader's reading of a book BookHive's catalogue doesn't hold, or can't be matched to for certain: the home of last resort, so any book can be added to a library and reviewed. One per book. Status, dates, rating, review and progress live here as they do on a buzz.bookhive.book; the book is named in every key anyone uses, so any app that recognises one of them can show the reading. When BookHive's catalogue has the book, Resenha moves the reading there: it writes a buzz.bookhive.book with everyt

  • A book in the user's library

  • User has abandoned the book