com.bbq-joints.review
One person's review of a BBQ joint, held in their own repository. The reviewer owns it: they can edit or delete it, and it travels with them to any other app that reads this collection.
Details · record, key any
| Kind | record |
|---|---|
| Record key | any |
| Authority | bbq-joints.com |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "One person's review of a BBQ joint, held in their own repository. The reviewer owns it: they can edit or delete it, and it travels with them to any other app that reads this collection.",
"key": "any",
"record": {
"properties": {
"createdAt": {
"description": "When the record was written.",
"format": "datetime",
"type": "string"
},
"rating": {
"description": "Stars, 1 to 5.",
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"subject": {
"description": "The place being reviewed, as the at:// URI of its com.bbq-joints.place record. A URI rather than a name so a joint can be renamed without orphaning its reviews — the mistake that cost a photo its joint when the cloud schema travelled by name.",
"format": "at-uri",
"type": "string"
},
"text": {
"description": "Optional note. maxGraphemes as well as maxLength because an emoji-heavy review is short to a reader and long in bytes.",
"maxGraphemes": 1000,
"maxLength": 2000,
"type": "string"
},
"updatedAt": {
"description": "Set when an existing review is changed, so a reader can tell a revision from a fresh opinion.",
"format": "datetime",
"type": "string"
},
"visitedAt": {
"description": "When they ate there, if they said. Distinct from createdAt: a review written months later is still about that visit.",
"format": "datetime",
"type": "string"
}
},
"required": [
"subject",
"rating",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "com.bbq-joints.review",
"lexicon": 1
}