social.dracome.library.state

dracome.social

Documentation

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 record's catalogTarget change over time.

main record

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 record's catalogTarget change over time.

Record Key tid Timestamp-based ID

Properties

catalogSnapshot ref social.dracome.work.defs#catalogSnapshot Required

Point-in-time catalog metadata for the tracked work or edition, captured when this record was last written. Refreshed on every update.

createdAt string datetime Required

Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.

finishedAt string datetime Optional

Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.

startedAt string datetime Optional

Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix. This records the first instant the actor entered in_progress for the current reading episode. Returns to in_progress within 14 days preserve the same startedAt.

updatedAt string datetime Optional

Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.

View raw schema
{
  "description": "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 record's catalogTarget change over time.",
  "key": "tid",
  "record": {
    "properties": {
      "catalogSnapshot": {
        "description": "Point-in-time catalog metadata for the tracked 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 reading-state record tracks. Mutable.",
        "ref": "social.dracome.work.defs#catalogTarget",
        "type": "ref"
      },
      "catalogTargetCustomization": {
        "description": "Optional user-confirmed override of catalog totals (page count, chapter count, or audio duration) for this specific target.",
        "ref": "social.dracome.library.defs#catalogTargetCustomization",
        "type": "ref"
      },
      "createdAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
        "format": "datetime",
        "type": "string"
      },
      "finishedAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
        "format": "datetime",
        "type": "string"
      },
      "progress": {
        "description": "Optional log of the actor's reading or listening progress over time for this target.",
        "ref": "social.dracome.library.defs#trackingProgress",
        "type": "ref"
      },
      "startedAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix. This records the first instant the actor entered in_progress for the current reading episode. Returns to in_progress within 14 days preserve the same startedAt.",
        "format": "datetime",
        "type": "string"
      },
      "status": {
        "description": "The actor's current reading-state status for this target, e.g. wishlist, backlog, in_progress, paused, completed, or abandoned.",
        "ref": "social.dracome.library.defs#trackingStatus",
        "type": "ref"
      },
      "updatedAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "catalogTarget",
      "catalogSnapshot",
      "status",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@