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

Compare Other Versions

Lexicon Garden

@