A review of a route: a 1-5 rating, optional text, and optional photos. Activity-neutral. The AppView treats the most recent review per (author, subject) as canonical.
tid
Timestamp-based ID
Properties
completedAt
string
datetime
Optional
When the reviewer last did the route (rode, ran, hiked), if they want to say.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
images
array
of
ref
app.attrails.defs#image
Optional
No description available.
maxLength: 10 itemslabels
union
Optional
Self-label values for this review, e.g. to flag sensitive photos.
langs
array
of
string
language
Optional
Languages of this record's text (review text, image alt text), as BCP-47 tags. If absent, consumers should assume English ('en').
maxLength: 3 itemsrating
integer
Required
Star rating from 1 (worst) to 5 (best).
minimum: 1maximum: 5subject
ref
com.atproto.repo.strongRef
Required
Strong reference to an attrails record, often an app.attrails.route record.
text
string
Optional
Review text, as CommonMark markdown. Clients must not render raw HTML.
maxLength: 30000 bytesmaxGraphemes: 3000 graphemesView raw schema
{
"description": "A review of a route: a 1-5 rating, optional text, and optional photos. Activity-neutral. The AppView treats the most recent review per (author, subject) as canonical.",
"key": "tid",
"record": {
"properties": {
"completedAt": {
"description": "When the reviewer last did the route (rode, ran, hiked), if they want to say.",
"format": "datetime",
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"images": {
"items": {
"ref": "app.attrails.defs#image",
"type": "ref"
},
"maxLength": 10,
"type": "array"
},
"labels": {
"description": "Self-label values for this review, e.g. to flag sensitive photos.",
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"langs": {
"description": "Languages of this record's text (review text, image alt text), as BCP-47 tags. If absent, consumers should assume English ('en').",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"rating": {
"description": "Star rating from 1 (worst) to 5 (best).",
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"subject": {
"description": "Strong reference to an attrails record, often an app.attrails.route record.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"text": {
"description": "Review text, as CommonMark markdown. Clients must not render raw HTML.",
"maxGraphemes": 3000,
"maxLength": 30000,
"type": "string"
}
},
"required": [
"subject",
"rating",
"createdAt"
],
"type": "object"
},
"type": "record"
}