{
"id": "at.isnot.review",
"defs": {
"tag": {
"type": "object",
"required": [
"direction",
"adjective"
],
"properties": {
"adjective": {
"type": "string",
"maxLength": 160,
"description": "An adjective, in any language, that the subject either is, or is not.",
"maxGraphemes": 16,
"minGraphemes": 1
},
"direction": {
"enum": [
-2,
-1,
0,
1,
2
],
"type": "integer",
"description": "Whether the subject *is* the adjective (1), *is not* the adjective (-1) or, less commonly, *really* is (2), or *really* isn't (-2). A value of zero is an explicit 'no comment', uncertainty, or lack of opinion."
}
}
},
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"subject",
"tags",
"createdAt",
"updatedAt"
],
"properties": {
"tags": {
"type": "array",
"items": {
"ref": "#tag",
"type": "ref"
},
"maxLength": 32,
"minLength": 1,
"description": "The adjectives this review applies to the subject. An adjective should appear at most once; readers keep the last entry when it repeats."
},
"locale": {
"type": "string",
"format": "language",
"description": "The language the whole review is meant to be read in (BCP 47), not the language of any one adjective. Readers may render the sentence in this locale."
},
"subject": {
"ref": "#subject",
"type": "ref",
"description": "The thing being tagged, described well enough to display without fetching the referenced record. Readers can decide whether the cid must match for their purposes, or whether the at-uri alone is enough."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"updatedAt": {
"type": "string",
"format": "datetime"
}
}
},
"description": "A person's review of one thing: which adjectives it is, and is not. One record per subject per repo; update it rather than creating another."
},
"subject": {
"type": "object",
"required": [
"uri",
"cid",
"title",
"type"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "The uri's cid when this tag was last updated."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "The atproto record that represents the thing being tagged."
},
"type": {
"type": "string",
"maxLength": 64,
"description": "The kind of thing the subject is. Open set; add values as lenses support them.",
"knownValues": [
"movie",
"tv-show",
"tv-season",
"tv-episode",
"book",
"book-series",
"album",
"music-track",
"video-game",
"post",
"publication",
"app",
"web-page",
"web-stream",
"code-repo"
]
},
"title": {
"type": "string",
"maxLength": 2560,
"description": "The name of the thing being tagged, usually copied from a field on the subject record.",
"maxGraphemes": 256,
"minGraphemes": 1
},
"identifiers": {
"type": "array",
"items": {
"ref": "#identifier",
"type": "ref"
},
"maxLength": 32,
"description": "External identifiers for the subject, such as imdbId or isbn13."
}
}
},
"identifier": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string",
"maxLength": 64
},
"value": {
"type": "string",
"maxLength": 512
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}