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.
any
Any valid record key
Properties
createdAt
string
datetime
Required
When the record was written.
rating
integer
Required
Stars, 1 to 5.
minimum: 1maximum: 5subject
string
at-uri
Required
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.
text
string
Optional
Optional note. maxGraphemes as well as maxLength because an emoji-heavy review is short to a reader and long in bytes.
maxLength: 2000 bytesmaxGraphemes: 1000 graphemesupdatedAt
string
datetime
Optional
Set when an existing review is changed, so a reader can tell a revision from a fresh opinion.
visitedAt
string
datetime
Optional
When they ate there, if they said. Distinct from createdAt: a review written months later is still about that visit.
View raw schema
{
"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"
}