at.isnot.review

isnot.at

Schema Diff

+2 -1

From

CID
bafyreic4ryhfelj...
Indexed At
2026-09-15 00:15 UTC
View this version

To

CID
bafyreifys66trp5...
Indexed At
2026-09-17 02:53 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 0 non-breaking changes.

Breaking Changes (1)
  • ConstraintTightened ConstraintTightened { vertex_id: "at.isnot.review#subject.type", sort: "knownValues", old_value: "[\"movie\",\"tv-show\",\"tv-season\",\"tv-episode\",\"book\",\"book-series\",\"album\",\"music-track\",\"video-game\",\"post\",\"publication\",\"app\",\"web-page\",\"web-stream\",\"code-repo\"]", new_value: "[\"movie\",\"tv-show\",\"tv-season\",\"tv-episode\",\"book\",\"book-series\",\"album\",\"music-track\",\"music-artist\",\"video-game\",\"post\",\"publication\",\"app\",\"web-page\",\"web-stream\",\"code-repo\"]" }

Migration Guidance

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "at.isnot.review#subject.type", sort: "knownValues", old_value: "[\"movie\",\"tv-show\",\"tv-season\",\"tv-episode\",\"book\",\"book-series\",\"album\",\"music-track\",\"video-game\",\"post\",\"publication\",\"app\",\"web-page\",\"web-stream\",\"code-repo\"]", new_value: "[\"movie\",\"tv-show\",\"tv-season\",\"tv-episode\",\"book\",\"book-series\",\"album\",\"music-track\",\"music-artist\",\"video-game\",\"post\",\"publication\",\"app\",\"web-page\",\"web-stream\",\"code-repo\"]" }
1 1
{
2 2
  "id": "at.isnot.review",
3 3
  "defs": {
4 4
    "tag": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "direction",
8 8
        "adjective"
9 9
      ],
10 10
      "properties": {
11 11
        "adjective": {
12 12
          "type": "string",
13 13
          "maxLength": 160,
14 14
          "description": "An adjective, in any language, that the subject either is, or is not.",
15 15
          "maxGraphemes": 16,
16 16
          "minGraphemes": 1
17 17
        },
18 18
        "direction": {
19 19
          "enum": [
20 20
            -2,
21 21
            -1,
22 22
            0,
23 23
            1,
24 24
            2
25 25
          ],
26 26
          "type": "integer",
27 27
          "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."
28 28
        }
29 29
      }
30 30
    },
31 31
    "main": {
32 32
      "key": "tid",
33 33
      "type": "record",
34 34
      "record": {
35 35
        "type": "object",
36 36
        "required": [
37 37
          "subject",
38 38
          "tags",
39 39
          "createdAt",
40 40
          "updatedAt"
41 41
        ],
42 42
        "properties": {
43 43
          "tags": {
44 44
            "type": "array",
45 45
            "items": {
46 46
              "ref": "#tag",
47 47
              "type": "ref"
48 48
            },
49 49
            "maxLength": 32,
50 50
            "minLength": 1,
51 51
            "description": "The adjectives this review applies to the subject. An adjective should appear at most once; readers keep the last entry when it repeats."
52 52
          },
53 53
          "locale": {
54 54
            "type": "string",
55 55
            "format": "language",
56 56
            "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."
57 57
          },
58 58
          "subject": {
59 59
            "ref": "#subject",
60 60
            "type": "ref",
61 61
            "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."
62 62
          },
63 63
          "createdAt": {
64 64
            "type": "string",
65 65
            "format": "datetime"
66 66
          },
67 67
          "updatedAt": {
68 68
            "type": "string",
69 69
            "format": "datetime"
70 70
          }
71 71
        }
72 72
      },
73 -
      "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."
73 +
      "description": "A person's review of one thing: which adjectives it is, and is not. One record per subject and locale per repo; update it rather than creating another. If a repo ever holds more than one review of the same subject in the same locale, merge them into the earliest-created one (tag conflicts: latest updatedAt wins, then direction nearer 0, then positive) and delete the rest."
74 74
    },
75 75
    "subject": {
76 76
      "type": "object",
77 77
      "required": [
78 78
        "uri",
79 79
        "cid",
80 80
        "title",
81 81
        "type"
82 82
      ],
83 83
      "properties": {
84 84
        "cid": {
85 85
          "type": "string",
86 86
          "format": "cid",
87 87
          "description": "The uri's cid when this tag was last updated."
88 88
        },
89 89
        "uri": {
90 90
          "type": "string",
91 91
          "format": "at-uri",
92 92
          "description": "The atproto record that represents the thing being tagged."
93 93
        },
94 94
        "type": {
95 95
          "type": "string",
96 96
          "maxLength": 64,
97 97
          "description": "The kind of thing the subject is. Open set; add values as lenses support them.",
98 98
          "knownValues": [
99 99
            "movie",
100 100
            "tv-show",
101 101
            "tv-season",
102 102
            "tv-episode",
103 103
            "book",
104 104
            "book-series",
105 105
            "album",
106 106
            "music-track",
107 +
            "music-artist",
107 108
            "video-game",
108 109
            "post",
109 110
            "publication",
110 111
            "app",
111 112
            "web-page",
112 113
            "web-stream",
113 114
            "code-repo"
114 115
          ]
115 116
        },
116 117
        "title": {
117 118
          "type": "string",
118 119
          "maxLength": 2560,
119 120
          "description": "The name of the thing being tagged, usually copied from a field on the subject record.",
120 121
          "maxGraphemes": 256,
121 122
          "minGraphemes": 1
122 123
        },
123 124
        "identifiers": {
124 125
          "type": "array",
125 126
          "items": {
126 127
            "ref": "#identifier",
127 128
            "type": "ref"
128 129
          },
129 130
          "maxLength": 32,
130 131
          "description": "External identifiers for the subject, such as imdbId or isbn13."
131 132
        }
132 133
      }
133 134
    },
134 135
    "identifier": {
135 136
      "type": "object",
136 137
      "required": [
137 138
        "key",
138 139
        "value"
139 140
      ],
140 141
      "properties": {
141 142
        "key": {
142 143
          "type": "string",
143 144
          "maxLength": 64
144 145
        },
145 146
        "value": {
146 147
          "type": "string",
147 148
          "maxLength": 512
148 149
        }
149 150
      }
150 151
    }
151 152
  },
152 153
  "$type": "com.atproto.lexicon.schema",
153 154
  "lexicon": 1
154 155
}

Compare Other Versions

Lexicon Garden

@