Record declaring a subscription to an author — the sibling of site.standard.graph.subscription, which targets publications only. Following an author means wanting the books they have not written yet, so the subject is the author's DID rather than any record: a publication that does not exist yet cannot be referenced. One record per (reader, author) by convention: clients list their own repo and reuse the existing record rather than create a second (the same convention page.cavu.progress uses). The author DID makes records discoverable by backlink index (Microcosm/Constellation), so 'how many readers follow this author' needs no app-side database. The author identity is the repo DID that owns the publications, which is what an author page addresses; contributor names inside page.cavu.book are display metadata and are not subjects here. The key is a tid rather than the author's DID, which would otherwise be the obvious deterministic choice: a did:web carrying a port percent-encodes (did:web:example.com%3A3000) and '%' is not a legal record-key character.
tid
Timestamp-based ID
Properties
View raw schema
{
"description": "Record declaring a subscription to an author — the sibling of site.standard.graph.subscription, which targets publications only. Following an author means wanting the books they have not written yet, so the subject is the author's DID rather than any record: a publication that does not exist yet cannot be referenced. One record per (reader, author) by convention: clients list their own repo and reuse the existing record rather than create a second (the same convention page.cavu.progress uses). The author DID makes records discoverable by backlink index (Microcosm/Constellation), so 'how many readers follow this author' needs no app-side database. The author identity is the repo DID that owns the publications, which is what an author page addresses; contributor names inside page.cavu.book are display metadata and are not subjects here. The key is a tid rather than the author's DID, which would otherwise be the obvious deterministic choice: a did:web carrying a port percent-encodes (did:web:example.com%3A3000) and '%' is not a legal record-key character.",
"key": "tid",
"record": {
"properties": {
"author": {
"description": "DID of the author being subscribed to — the repo whose site.standard.publication records are the books, and the backlink target.",
"format": "did",
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
}
},
"required": [
"author",
"createdAt"
],
"type": "object"
},
"type": "record"
}