{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A single pairwise preference: the user prefers `winner` over `loser`.",
"key": "tid",
"record": {
"properties": {
"createdAt": {
"format": "datetime",
"type": "string"
},
"loser": {
"ref": "#work",
"type": "ref"
},
"session": {
"description": "Optional id grouping comparisons made in one shuffle/refine or insertion session. Enables UX analytics and active-learning batching.",
"maxLength": 64,
"type": "string"
},
"winner": {
"ref": "#work",
"type": "ref"
}
},
"required": [
"winner",
"loser",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"work": {
"description": "Identity of a title, by external catalog id. Uses a shared identifier convention for cross-app join compatibility.",
"properties": {
"imdbId": {
"description": "IMDB id, e.g. \"tt5950044\". Optional but recommended as a stable secondary key.",
"maxLength": 32,
"type": "string"
},
"tmdbId": {
"description": "TMDB id, stored as a string (e.g. \"1061474\").",
"maxLength": 32,
"type": "string"
},
"type": {
"description": "Open work vocabulary. FilmClash uses movie/tv_show initially; the open set leaves room to extend without a breaking change.",
"knownValues": [
"movie",
"tv_show",
"book",
"game",
"music"
],
"maxLength": 64,
"type": "string"
}
},
"required": [
"tmdbId",
"type"
],
"type": "object"
}
},
"id": "club.filmclash.comparison",
"lexicon": 1
}
Metadata
- DID
-
did:plc:wdmbctd3ezqqnmrbvdu4ygme
- CID
-
bafyreidyotrhz6aelth5wprg3suxiub4m3itptczeccak7dx4ovu2vmq6a
- Indexed At
- 2026-06-22 20:03 UTC
- AT-URI
-
at://did:plc:wdmbctd3ezqqnmrbvdu4ygme/com.atproto.lexicon.schema/club.filmclash.comparison