blog.pckt.mini.post

pckt.blog

Schema Diff

+17 -1

From

CID
bafyreibbmayi7xm...
Indexed At
2026-07-26 20:13 UTC
View this version

To

CID
bafyreic3cfr3exa...
Indexed At
2026-08-08 22:26 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "blog.pckt.mini.post#record.end" }
  • AddedVertex AddedVertex { vertex_id: "blog.pckt.mini.post#record.hash" }
  • AddedVertex AddedVertex { vertex_id: "blog.pckt.mini.post#record.start" }
  • AddedEdge AddedEdge { src: "blog.pckt.mini.post#record", tgt: "blog.pckt.mini.post#record.end", kind: "prop", name: Some("end") }
  • AddedEdge AddedEdge { src: "blog.pckt.mini.post#record", tgt: "blog.pckt.mini.post#record.hash", kind: "prop", name: Some("hash") }
  • AddedEdge AddedEdge { src: "blog.pckt.mini.post#record", tgt: "blog.pckt.mini.post#record.start", kind: "prop", name: Some("start") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "blog.pckt.mini.post#record.end" }
  • AddedVertex { vertex_id: "blog.pckt.mini.post#record.hash" }
  • AddedVertex { vertex_id: "blog.pckt.mini.post#record.start" }

Additional Notes

  • Non-breaking: AddedEdge { src: "blog.pckt.mini.post#record", tgt: "blog.pckt.mini.post#record.end", kind: "prop", name: Some("end") }
  • Non-breaking: AddedEdge { src: "blog.pckt.mini.post#record", tgt: "blog.pckt.mini.post#record.hash", kind: "prop", name: Some("hash") }
  • Non-breaking: AddedEdge { src: "blog.pckt.mini.post#record", tgt: "blog.pckt.mini.post#record.start", kind: "prop", name: Some("start") }
1 1
{
2 2
  "id": "blog.pckt.mini.post",
3 3
  "defs": {
4 4
    "tag": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "tag"
8 8
      ],
9 9
      "properties": {
10 10
        "tag": {
11 11
          "type": "string",
12 12
          "maxLength": 640,
13 13
          "maxGraphemes": 64
14 14
        }
15 15
      }
16 16
    },
17 17
    "link": {
18 18
      "type": "object",
19 19
      "required": [
20 20
        "uri"
21 21
      ],
22 22
      "properties": {
23 23
        "uri": {
24 24
          "type": "string",
25 25
          "format": "uri"
26 26
        }
27 27
      }
28 28
    },
29 29
    "main": {
30 30
      "key": "tid",
31 31
      "type": "record",
32 32
      "record": {
33 33
        "type": "object",
34 34
        "required": [
35 35
          "text",
36 36
          "createdAt"
37 37
        ],
38 38
        "properties": {
39 39
          "tags": {
40 40
            "type": "array",
41 41
            "items": {
42 42
              "type": "string",
43 43
              "maxLength": 640,
44 44
              "maxGraphemes": 64
45 45
            },
46 46
            "maxLength": 8
47 47
          },
48 48
          "text": {
49 49
            "type": "string",
50 50
            "maxLength": 3000,
51 51
            "maxGraphemes": 300
52 52
          },
53 53
          "embed": {
54 54
            "refs": [
55 55
              "#images",
56 56
              "#external",
57 57
              "#record",
58 58
              "#recordWithMedia"
59 59
            ],
60 60
            "type": "union"
61 61
          },
62 62
          "langs": {
63 63
            "type": "array",
64 64
            "items": {
65 65
              "type": "string",
66 66
              "format": "language"
67 67
            },
68 68
            "maxLength": 3
69 69
          },
70 70
          "reply": {
71 71
            "ref": "#replyRef",
72 72
            "type": "ref"
73 73
          },
74 74
          "facets": {
75 75
            "type": "array",
76 76
            "items": {
77 77
              "ref": "#facet",
78 78
              "type": "ref"
79 79
            }
80 80
          },
81 81
          "labels": {
82 82
            "refs": [
83 83
              "com.atproto.label.defs#selfLabels"
84 84
            ],
85 85
            "type": "union"
86 86
          },
87 87
          "subject": {
88 88
            "type": "string",
89 89
            "format": "at-uri"
90 90
          },
91 91
          "createdAt": {
92 92
            "type": "string",
93 93
            "format": "datetime"
94 94
          },
95 95
          "publication": {
96 96
            "type": "string",
97 97
            "format": "at-uri"
98 98
          }
99 99
        }
100 100
      }
101 101
    },
102 102
    "facet": {
103 103
      "type": "object",
104 104
      "required": [
105 105
        "index",
106 106
        "features"
107 107
      ],
108 108
      "properties": {
109 109
        "index": {
110 110
          "ref": "#byteSlice",
111 111
          "type": "ref"
112 112
        },
113 113
        "features": {
114 114
          "type": "array",
115 115
          "items": {
116 116
            "refs": [
117 117
              "#mention",
118 118
              "#link",
119 119
              "#tag"
120 120
            ],
121 121
            "type": "union"
122 122
          }
123 123
        }
124 124
      }
125 125
    },
126 126
    "image": {
127 127
      "type": "object",
128 128
      "required": [
129 129
        "image",
130 130
        "alt"
131 131
      ],
132 132
      "properties": {
133 133
        "alt": {
134 134
          "type": "string"
135 135
        },
136 136
        "image": {
137 137
          "type": "blob",
138 138
          "accept": [
139 139
            "image/*"
140 140
          ],
141 141
          "maxSize": 1000000
142 142
        },
143 143
        "aspectRatio": {
144 144
          "ref": "#aspectRatio",
145 145
          "type": "ref"
146 146
        }
147 147
      }
148 148
    },
149 149
    "images": {
150 150
      "type": "object",
151 151
      "required": [
152 152
        "images"
153 153
      ],
154 154
      "properties": {
155 155
        "images": {
156 156
          "type": "array",
157 157
          "items": {
158 158
            "ref": "#image",
159 159
            "type": "ref"
160 160
          },
161 161
          "maxLength": 4
162 162
        }
163 163
      }
164 164
    },
165 165
    "record": {
166 166
      "type": "object",
167 167
      "required": [
168 168
        "record"
169 169
      ],
170 170
      "properties": {
171 +
        "end": {
172 +
          "type": "integer",
173 +
          "minimum": 0,
174 +
          "description": "Character offset one past the end of the quoted passage."
175 +
        },
176 +
        "hash": {
177 +
          "type": "string",
178 +
          "maxLength": 64,
179 +
          "description": "sha256 of the quoted passage's text, with whitespace collapsed."
180 +
        },
181 +
        "start": {
182 +
          "type": "integer",
183 +
          "minimum": 0,
184 +
          "description": "Character offset of the quoted passage in the quoted record's plain text."
185 +
        },
171 186
        "record": {
172 187
          "ref": "com.atproto.repo.strongRef",
173 188
          "type": "ref"
174 189
        }
175 -
      }
190 +
      },
191 +
      "description": "A quoted record, optionally narrowed to a passage of it."
176 192
    },
177 193
    "mention": {
178 194
      "type": "object",
179 195
      "required": [
180 196
        "did"
181 197
      ],
182 198
      "properties": {
183 199
        "did": {
184 200
          "type": "string",
185 201
          "format": "did"
186 202
        }
187 203
      }
188 204
    },
189 205
    "external": {
190 206
      "type": "object",
191 207
      "required": [
192 208
        "uri",
193 209
        "title",
194 210
        "description"
195 211
      ],
196 212
      "properties": {
197 213
        "uri": {
198 214
          "type": "string",
199 215
          "format": "uri"
200 216
        },
201 217
        "thumb": {
202 218
          "type": "blob",
203 219
          "accept": [
204 220
            "image/*"
205 221
          ],
206 222
          "maxSize": 1000000
207 223
        },
208 224
        "title": {
209 225
          "type": "string"
210 226
        },
211 227
        "description": {
212 228
          "type": "string"
213 229
        }
214 230
      }
215 231
    },
216 232
    "replyRef": {
217 233
      "type": "object",
218 234
      "required": [
219 235
        "root",
220 236
        "parent"
221 237
      ],
222 238
      "properties": {
223 239
        "root": {
224 240
          "ref": "com.atproto.repo.strongRef",
225 241
          "type": "ref"
226 242
        },
227 243
        "parent": {
228 244
          "ref": "com.atproto.repo.strongRef",
229 245
          "type": "ref"
230 246
        }
231 247
      }
232 248
    },
233 249
    "byteSlice": {
234 250
      "type": "object",
235 251
      "required": [
236 252
        "byteStart",
237 253
        "byteEnd"
238 254
      ],
239 255
      "properties": {
240 256
        "byteEnd": {
241 257
          "type": "integer",
242 258
          "minimum": 0
243 259
        },
244 260
        "byteStart": {
245 261
          "type": "integer",
246 262
          "minimum": 0
247 263
        }
248 264
      }
249 265
    },
250 266
    "aspectRatio": {
251 267
      "type": "object",
252 268
      "required": [
253 269
        "width",
254 270
        "height"
255 271
      ],
256 272
      "properties": {
257 273
        "width": {
258 274
          "type": "integer",
259 275
          "minimum": 1
260 276
        },
261 277
        "height": {
262 278
          "type": "integer",
263 279
          "minimum": 1
264 280
        }
265 281
      }
266 282
    },
267 283
    "recordWithMedia": {
268 284
      "type": "object",
269 285
      "required": [
270 286
        "record",
271 287
        "media"
272 288
      ],
273 289
      "properties": {
274 290
        "media": {
275 291
          "refs": [
276 292
            "#images",
277 293
            "#external"
278 294
          ],
279 295
          "type": "union"
280 296
        },
281 297
        "record": {
282 298
          "ref": "#record",
283 299
          "type": "ref"
284 300
        }
285 301
      }
286 302
    }
287 303
  },
288 304
  "$type": "com.atproto.lexicon.schema",
289 305
  "lexicon": 1
290 306
}

Compare Other Versions

Lexicon Garden

@