full diff

xyz.opnshelf.review

opnshelf.xyz +4 −0
From
bafyreiag5ond7ge3ow3dxou33s52vbzcimmxd2jv4joamv22exdxjcybwu indexed 2026-07-26 20:10 UTC View this version
To
bafyreihwhgt22igfpd5vyjvargep3tbl4w6bqbhi5jxkk6ysgxsysizdbe indexed 2026-08-18 17:25 UTC View this version

Compatibility

backward compatible Backward compatible. 2 non-breaking changes.

Non-breaking changes (2)
  • AddedVertex AddedVertex { vertex_id: "xyz.opnshelf.review:body.spoiler" }
  • AddedEdge AddedEdge { src: "xyz.opnshelf.review:body", tgt: "xyz.opnshelf.review:body.spoiler", kind: "prop", name: Some("spoiler") }

Migration guidance

Added

  • AddedVertex { vertex_id: "xyz.opnshelf.review:body.spoiler" }

Notes

  • Non-breaking: AddedEdge { src: "xyz.opnshelf.review:body", tgt: "xyz.opnshelf.review:body.spoiler", kind: "prop", name: Some("spoiler") }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "A user's long-form textual review of a media item. Carries no numeric score (that is a separate xyz.opnshelf.rating). Zero-or-many per media item per user.",
66 "key": "tid",
77 "record": {
88 "properties": {
99 "content": {
1010 "description": "Review body as markdown source",
1111 "maxGraphemes": 20000,
1212 "maxLength": 100000,
1313 "type": "string"
1414 },
1515 "createdAt": {
1616 "description": "Record creation timestamp",
1717 "format": "datetime",
1818 "type": "string"
1919 },
2020 "episodeNumber": {
2121 "description": "Episode number for episode items",
2222 "type": "integer"
2323 },
2424 "mediaId": {
2525 "description": "TMDB movie ID or show ID",
2626 "type": "string"
2727 },
2828 "mediaType": {
2929 "description": "Media type",
3030 "enum": [
3131 "movie",
3232 "show",
3333 "season",
3434 "episode"
3535 ],
3636 "type": "string"
3737 },
3838 "seasonNumber": {
3939 "description": "Season number for season/episode items",
4040 "type": "integer"
4141 },
42 "spoiler": {
43 "description": "True when the body contains spoilers for the reviewed media item. The title is outside the spoiler boundary and must remain spoiler-free.",
44 "type": "boolean"
45 },
4246 "title": {
4347 "description": "Review title",
4448 "maxGraphemes": 300,
4549 "maxLength": 3000,
4650 "type": "string"
4751 },
4852 "updatedAt": {
4953 "description": "Last edit timestamp",
5054 "format": "datetime",
5155 "type": "string"
5256 }
5357 },
5458 "required": [
5559 "mediaType",
5660 "mediaId",
5761 "title",
5862 "content",
5963 "createdAt"
6064 ],
6165 "type": "object"
6266 },
6367 "type": "record"
6468 }
6569 },
6670 "id": "xyz.opnshelf.review",
6771 "lexicon": 1
6872}

Compare other versions