A favorite/tracked marker 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 record's catalogTarget change over time.
tid
Timestamp-based ID
Properties
catalogSnapshot
ref
social.dracome.work.defs#catalogSnapshot
Required
Point-in-time catalog metadata for the marked work or edition, captured when this record was last written. Refreshed on every update.
catalogTarget
ref
social.dracome.work.defs#catalogTarget
Required
The work and edition that this marker applies to. Mutable.
createdAt
string
datetime
Required
Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.
favorite
boolean
Optional
True when the actor has marked the current work or edition as a favorite. Runtime validation MUST delete the marker record when all marker booleans would be false.
tracked
boolean
Optional
True when the actor has marked the current work or edition as tracked. This marker is independent of the reading status.
updatedAt
string
datetime
Optional
Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.
View raw schema
{
"description": "A favorite/tracked marker 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 record's catalogTarget change over time.",
"key": "tid",
"record": {
"description": "Runtime validation MUST require at least one of favorite or tracked to be true. If all marker booleans would be false, the record should be deleted instead of kept as an empty record.",
"properties": {
"catalogSnapshot": {
"description": "Point-in-time catalog metadata for the marked work or edition, captured when this record was last written. Refreshed on every update.",
"ref": "social.dracome.work.defs#catalogSnapshot",
"type": "ref"
},
"catalogTarget": {
"description": "The work and edition that this marker applies to. Mutable.",
"ref": "social.dracome.work.defs#catalogTarget",
"type": "ref"
},
"createdAt": {
"description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
"format": "datetime",
"type": "string"
},
"favorite": {
"description": "True when the actor has marked the current work or edition as a favorite. Runtime validation MUST delete the marker record when all marker booleans would be false.",
"type": "boolean"
},
"tracked": {
"description": "True when the actor has marked the current work or edition as tracked. This marker is independent of the reading status.",
"type": "boolean"
},
"updatedAt": {
"description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
"format": "datetime",
"type": "string"
}
},
"required": [
"catalogTarget",
"catalogSnapshot",
"createdAt"
],
"type": "object"
},
"type": "record"
}