social.dracome.library.review

dracome.social

Documentation

A review of one edition by an 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 review of one edition by an 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 reviewed 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.

images ref social.dracome.embed.defs#images Optional

Optional attached images: an optional primary image plus up to 4 secondary images (5 total). Images are independently addable/removable.

language string language Optional

Optional language code the review text is written in, if different from or more specific than the actor's default language.

rating integer Required

Scale-relative rating value. Valid range depends on ratingScale: 1-5 for 1 (whole stars), 1-10 for 2 (half stars), 1-20 for 4 (quarter stars). Interpretation: stars = rating / ratingScale. Runtime validation MUST enforce per-scale limits.

minimum: 1maximum: 20
ratingScale integer Required

The rating granularity divisor used at write time: divide rating by this value to recover stars. 1 = whole stars, 2 = half stars, 4 = quarter stars. Reflects whichever scale was in effect the last time rating was written on this record.

reviewCopy boolean Optional

True when the posted review discloses that the actor received or owns a review copy of this work or edition.

text string Optional

Optional review text. When provided, must be non-empty after trimming.

maxLength: 40000 bytesmaxGraphemes: 10000 graphemes
updatedAt string datetime Optional

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

View raw schema
{
  "description": "A review of one edition by an 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 reviewed 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 review is about. 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"
      },
      "images": {
        "description": "Optional attached images: an optional primary image plus up to 4 secondary images (5 total). Images are independently addable/removable.",
        "ref": "social.dracome.embed.defs#images",
        "type": "ref"
      },
      "language": {
        "description": "Optional language code the review text is written in, if different from or more specific than the actor's default language.",
        "format": "language",
        "type": "string"
      },
      "rating": {
        "description": "Scale-relative rating value. Valid range depends on ratingScale: 1-5 for 1 (whole stars), 1-10 for 2 (half stars), 1-20 for 4 (quarter stars). Interpretation: stars = rating / ratingScale. Runtime validation MUST enforce per-scale limits.",
        "maximum": 20,
        "minimum": 1,
        "type": "integer"
      },
      "ratingScale": {
        "description": "The rating granularity divisor used at write time: divide rating by this value to recover stars. 1 = whole stars, 2 = half stars, 4 = quarter stars. Reflects whichever scale was in effect the last time rating was written on this record.",
        "enum": [
          1,
          2,
          4
        ],
        "type": "integer"
      },
      "reviewCopy": {
        "description": "True when the posted review discloses that the actor received or owns a review copy of this work or edition.",
        "type": "boolean"
      },
      "text": {
        "description": "Optional review text. When provided, must be non-empty after trimming.",
        "maxGraphemes": 10000,
        "maxLength": 40000,
        "type": "string"
      },
      "updatedAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "catalogTarget",
      "catalogSnapshot",
      "rating",
      "ratingScale",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@