full diff

ink.resenha.bookLink

resenha.ink +5 −0
From
bafyreidi5d52canrl2m7x7n2wh5yyhnrseyludp6msjymzzpmobvhgioyi indexed 2026-11-04 16:37 UTC View this version
To
bafyreiaucbd2erw62lglewgqt6ltvhaluphacldo4zswbwbvvudvs5kvyq indexed 2026-11-04 21:56 UTC View this version

Compatibility

backward compatible Backward compatible. 2 non-breaking changes.

Non-breaking changes (2)
  • AddedVertex AddedVertex { vertex_id: "ink.resenha.bookLink:body.reading" }
  • AddedEdge AddedEdge { src: "ink.resenha.bookLink:body", tgt: "ink.resenha.bookLink:body.reading", kind: "prop", name: Some("reading") }

Migration guidance

Added

  • AddedVertex { vertex_id: "ink.resenha.bookLink:body.reading" }

Notes

  • Non-breaking: AddedEdge { src: "ink.resenha.bookLink:body", tgt: "ink.resenha.bookLink:body.reading", kind: "prop", name: Some("reading") }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "One per book. The record key is the book's BookHive ID (hiveId); a book with no match yet is keyed popfeed-<record key of its first listItem>.",
66 "key": "any",
77 "record": {
88 "properties": {
99 "book": {
1010 "description": "The book in every key anyone uses: the link's own fields say which records are the book, this says which book.",
1111 "ref": "ink.resenha.defs#bookRef",
1212 "type": "ref"
1313 },
1414 "bookhive": {
1515 "description": "The reader's buzz.bookhive.book record for the book, when they have one.",
1616 "format": "at-uri",
1717 "type": "string"
1818 },
1919 "hiveId": {
2020 "description": "The book's BookHive ID. Absent when no match was found.",
2121 "maxLength": 64,
2222 "type": "string"
2323 },
2424 "isbn13": {
2525 "description": "The edition the reader's records name, when they name one.",
2626 "maxLength": 13,
2727 "type": "string"
2828 },
2929 "matchedBy": {
3030 "description": "identifiers: an ISBN or Goodreads number agreed, or the item named its BookHive ID. search: title and author agreed. reader: chosen by the reader, and never changed automatically. none: no match yet.",
3131 "knownValues": [
3232 "identifiers",
3333 "search",
3434 "reader",
3535 "none"
3636 ],
3737 "type": "string"
3838 },
3939 "popfeed": {
4040 "description": "The reader's social.popfeed.feed.listItem records for the book. A book can be on more than one list.",
4141 "items": {
4242 "format": "at-uri",
4343 "type": "string"
4444 },
4545 "maxLength": 20,
4646 "type": "array"
4747 },
48 "reading": {
49 "description": "The reader's ink.resenha.reading record for the book, when that's where they keep it. A reading and the reader's Popfeed items named here are one book.",
50 "format": "at-uri",
51 "type": "string"
52 },
4853 "updatedAt": {
4954 "format": "datetime",
5055 "type": "string"
5156 }
5257 },
5358 "required": [
5459 "matchedBy",
5560 "updatedAt"
5661 ],
5762 "type": "object"
5863 },
5964 "type": "record"
6065 }
6166 },
6267 "description": "Which catalog book a book in the reader's library is, and which of the reader's records in each book app are that book. Resenha writes these when it matches a reader's Popfeed books to BookHive's catalog, so Popfeed's and BookHive's own records are never changed to hold the match.",
6368 "id": "ink.resenha.bookLink",
6469 "lexicon": 1
6570}

Compare other versions