org.shelfcheck.shelf.entry
A user's shelf entry for a book. Exactly one record per book per user (deduplicate by ids.olWorkId, then by isbn13, then by fuzzy title+author). Status, dates, rating and notes are all carried inline; aggregators and other apps may render the same record as a 'wantToRead' card or a 'finished' review depending on the status field.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | shelf.shelfcheck.org |
| Indexed |
Record
record · key tidProperties
minLength: 1maxLength: 32
coverUrl
string · uriRemote cover image URL. Cover blobs are intentionally not uploaded to the PDS; clients may render via Open Library, the source URL, or their own cache.
finishedAt
string · datetimefirstPublishYear
integernote
stringFree-form private notes or a public review.
maxLength: 60000maxGraphemes: 15000
pageCount
integerminimum: 0
rating
integerUser rating, 0-100 (half-star resolution: 10 == 0.5★, 20 == 1★, ..., 100 == 5★).
minimum: 0maximum: 100
source
stringWhere this entry originated, for provenance: e.g. 'goodreads', 'hardcover', 'storygraph', 'bookhive', 'lyndi', 'manual'.
maxLength: 64
sourceUrl
string · uriCanonical link back to the source record (e.g. the Goodreads or BookHive page).
startedAt
string · datetimeknownValues: org.shelfcheck.defs#wantToRead | org.shelfcheck.defs#reading | org.shelfcheck.defs#finished | org.shelfcheck.defs#abandoned
subjects
arraymaxLength: 64
maxLength: 256
Display title, denormalized so the record is self-contained.
maxLength: 1024
updatedAt
string · datetimeSimilar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
buzz.bookhive.book
recordA book in the user's library
-
ink.resenha.reading
recordA 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
-
buzz.bookhive.hiveBook
recordA book within the hive
-
buzz.bookhive.catalogBook
recordA canonical book record in the BookHive catalog
-
A user's review of a book. StrongRefs the catalog book and optionally the originating bookShelving. rkey: tid. Written by the OAuth client (livtet-service) via com.atproto.repo.putRecord.