social.dracome.library.review
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"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"
}
},
"id": "social.dracome.library.review",
"lexicon": 1
}
Metadata
- DID
-
did:plc:66dyrt2bmghwlmdteyizs5l3 - CID
-
bafyreibxekskvibdvbpegywrmncspigtwqsiq6jh3vfwuuxkyx6aeuciga - Indexed At
- 2026-10-14 19:42 UTC
- AT-URI
-
at://did:plc:66dyrt2bmghwlmdteyizs5l3/com.atproto.lexicon.schema/social.dracome.library.review
Referenced Schemas (3)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
com.divepool.rating record
A rating gives a subject a dated integer score from 0 to 10. To re-rate, create a new record with an updated createdAt; the current score is the latest per (author, subject).
-
A review for a piece of media
-
net.neodb.review record
A long-form review of a catalog work, authored on a NeoDB instance.
-
A portable user-owned review of an Atmosphere project profile. The reviewer writes this record to their own PDS; AppViews may index and moderate their own display of it.
-
Record containing a review of something.