app.standard-reader.defs

standard-reader.app

Schema Diff

+76 -33

From

CID
bafyreig5u3besln...
Indexed At
2026-06-13 04:55 UTC
View this version

To

CID
bafyreifez46hn75...
Indexed At
2026-07-21 06:48 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

34 breaking changes, 4 non-breaking changes.

Breaking Changes (34)
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPageDocuments.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPagePublications.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.ownerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewUnknown.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchNameHtml", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.topic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchTitleHtml", sort: "maxLength", value: "1024" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.path", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.displayName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.tags:items", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "format", value: "uri" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationOwnerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationTopic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchSnippetHtml", sort: "maxLength", value: "8192" }
Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#documentView.content" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#documentView.contentFormat" }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.content", kind: "prop", name: Some("content") }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.contentFormat", kind: "prop", name: Some("contentFormat") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.standard-reader.defs#documentView.content" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#documentView.contentFormat" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.tags:items", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewUnknown.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchNameHtml", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPagePublications.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.ownerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchTitleHtml", sort: "maxLength", value: "1024" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "format", value: "uri" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationOwnerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.topic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.path", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationTopic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPageDocuments.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.displayName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.name", sort: "maxLength", value: "128" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.content", kind: "prop", name: Some("content") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.contentFormat", kind: "prop", name: Some("contentFormat") }
1 1
{
2 2
  "id": "app.standard-reader.defs",
3 3
  "defs": {
4 4
    "profileView": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "did"
8 8
      ],
9 9
      "properties": {
10 10
        "did": {
11 11
          "type": "string",
12 12
          "format": "did"
13 13
        },
14 14
        "handle": {
15 15
          "type": "string",
16 -
          "nullable": true
16 +
          "nullable": true,
17 +
          "maxLength": 128
17 18
        },
18 19
        "avatarUrl": {
19 20
          "type": "string",
20 21
          "format": "uri",
21 22
          "nullable": true
22 23
        },
23 24
        "bannerUrl": {
24 25
          "type": "string",
25 26
          "format": "uri",
26 27
          "nullable": true
27 28
        },
28 29
        "description": {
29 30
          "type": "string",
30 -
          "nullable": true
31 +
          "nullable": true,
32 +
          "maxLength": 4096
31 33
        },
32 34
        "displayName": {
33 35
          "type": "string",
34 -
          "nullable": true
36 +
          "nullable": true,
37 +
          "maxLength": 128
35 38
        }
36 39
      }
37 40
    },
38 41
    "documentView": {
39 42
      "type": "object",
40 43
      "required": [
41 44
        "uri",
42 45
        "did",
43 46
        "title",
44 47
        "publishedAt",
45 48
        "recommendCount",
46 49
        "commentCount",
47 50
        "hasRenderableBody",
48 51
        "isRead"
49 52
      ],
50 53
      "properties": {
51 54
        "did": {
52 55
          "type": "string",
53 56
          "format": "did"
54 57
        },
55 58
        "uri": {
56 59
          "type": "string",
57 60
          "format": "at-uri"
58 61
        },
59 62
        "path": {
60 63
          "type": "string",
61 -
          "nullable": true
64 +
          "nullable": true,
65 +
          "maxLength": 2048
62 66
        },
63 67
        "tags": {
64 68
          "type": "array",
65 69
          "items": {
66 -
            "type": "string"
70 +
            "type": "string",
71 +
            "maxLength": 128
67 72
          },
68 73
          "nullable": true
69 74
        },
70 75
        "title": {
71 -
          "type": "string"
76 +
          "type": "string",
77 +
          "maxLength": 512
72 78
        },
73 79
        "isRead": {
74 80
          "type": "boolean"
75 81
        },
82 +
        "content": {
83 +
          "type": "unknown",
84 +
          "description": "Renderable body payload (the content-union of the site.standard.document record). Only populated by getDocument; omitted from feed and search views."
85 +
        },
76 86
        "featured": {
77 87
          "type": "boolean"
78 88
        },
79 89
        "description": {
80 90
          "type": "string",
81 -
          "nullable": true
91 +
          "nullable": true,
92 +
          "maxLength": 4096
82 93
        },
83 94
        "publishedAt": {
84 95
          "type": "string",
85 96
          "format": "datetime"
86 97
        },
87 98
        "canonicalUrl": {
88 99
          "type": "string",
89 100
          "format": "uri",
90 101
          "nullable": true
91 102
        },
92 103
        "commentCount": {
93 104
          "type": "integer"
94 105
        },
106 +
        "contentFormat": {
107 +
          "type": "string",
108 +
          "maxLength": 256,
109 +
          "description": "Explicit content-union $type, used when the body payload lacks one. Only populated by getDocument."
110 +
        },
95 111
        "coverImageUrl": {
96 112
          "type": "string",
97 113
          "format": "uri",
98 114
          "nullable": true
99 115
        },
100 116
        "publicationUri": {
101 117
          "type": "string",
102 118
          "format": "at-uri",
103 119
          "nullable": true
104 120
        },
105 121
        "recommendCount": {
106 122
          "type": "integer"
107 123
        },
108 124
        "publicationName": {
109 125
          "type": "string",
110 -
          "nullable": true
126 +
          "nullable": true,
127 +
          "maxLength": 128
111 128
        },
112 129
        "searchTitleHtml": {
113 130
          "type": "string",
114 -
          "nullable": true
131 +
          "nullable": true,
132 +
          "maxLength": 1024
115 133
        },
116 134
        "publicationTopic": {
117 135
          "type": "string",
118 -
          "nullable": true
136 +
          "nullable": true,
137 +
          "maxLength": 128
119 138
        },
120 139
        "hasRenderableBody": {
121 140
          "type": "boolean"
122 141
        },
123 142
        "searchSnippetHtml": {
124 143
          "type": "string",
125 -
          "nullable": true
144 +
          "nullable": true,
145 +
          "maxLength": 8192
126 146
        },
127 147
        "publicationIconUrl": {
128 148
          "type": "string",
129 149
          "format": "uri",
130 150
          "nullable": true
131 151
        },
132 152
        "publicationBannerUrl": {
133 153
          "type": "string",
134 154
          "format": "uri",
135 155
          "nullable": true
136 156
        },
137 157
        "publicationOwnerHandle": {
138 158
          "type": "string",
139 -
          "nullable": true
159 +
          "nullable": true,
160 +
          "maxLength": 128
140 161
        },
141 162
        "publicationOwnerAvatarUrl": {
142 163
          "type": "string",
143 164
          "format": "uri",
144 165
          "nullable": true
145 166
        }
146 167
      },
147 168
      "description": "An article as shown in feed rows and search results (metadata only)."
148 169
    },
149 170
    "publicationView": {
150 171
      "type": "object",
151 172
      "required": [
152 173
        "uri",
153 174
        "did",
154 175
        "name",
155 176
        "url",
156 177
        "subscriberCount",
157 178
        "documentCount"
158 179
      ],
159 180
      "properties": {
160 181
        "did": {
161 182
          "type": "string",
162 183
          "format": "did"
163 184
        },
164 185
        "uri": {
165 186
          "type": "string",
166 187
          "format": "at-uri"
167 188
        },
168 189
        "url": {
169 190
          "type": "string",
170 191
          "format": "uri"
171 192
        },
172 193
        "name": {
173 -
          "type": "string"
194 +
          "type": "string",
195 +
          "maxLength": 128
174 196
        },
175 197
        "topic": {
176 198
          "type": "string",
177 -
          "nullable": true
199 +
          "nullable": true,
200 +
          "maxLength": 128
178 201
        },
179 202
        "iconUrl": {
180 203
          "type": "string",
181 204
          "format": "uri",
182 205
          "nullable": true
183 206
        },
184 207
        "verified": {
185 208
          "type": "boolean"
186 209
        },
187 210
        "description": {
188 211
          "type": "string",
189 -
          "nullable": true
212 +
          "nullable": true,
213 +
          "maxLength": 4096
190 214
        },
191 215
        "ownerHandle": {
192 216
          "type": "string",
193 -
          "nullable": true
217 +
          "nullable": true,
218 +
          "maxLength": 128
194 219
        },
195 220
        "documentCount": {
196 221
          "type": "integer"
197 222
        },
198 223
        "lastDocumentAt": {
199 224
          "type": "string",
200 225
          "format": "datetime",
201 226
          "nullable": true
202 227
        },
203 228
        "ownerAvatarUrl": {
204 229
          "type": "string",
205 230
          "format": "uri",
206 231
          "nullable": true
207 232
        },
208 233
        "searchNameHtml": {
209 234
          "type": "string",
210 -
          "nullable": true
235 +
          "nullable": true,
236 +
          "maxLength": 512
211 237
        },
212 238
        "subscriberCount": {
213 239
          "type": "integer"
214 240
        },
215 241
        "searchSnippetHtml": {
216 242
          "type": "string",
217 -
          "nullable": true
243 +
          "nullable": true,
244 +
          "maxLength": 8192
218 245
        }
219 246
      },
220 247
      "description": "A publication as shown in directory cards and profile headers."
221 248
    },
222 249
    "resolveViewArticle": {
223 250
      "type": "object",
224 251
      "required": [
225 252
        "kind",
226 253
        "documentUri",
227 254
        "title",
228 255
        "readerUrl",
229 256
        "recommendCount",
230 257
        "commentCount"
231 258
      ],
232 259
      "properties": {
233 260
        "kind": {
234 261
          "type": "string",
235 -
          "const": "article"
262 +
          "const": "article",
263 +
          "maxLength": 64
236 264
        },
237 265
        "title": {
238 -
          "type": "string"
266 +
          "type": "string",
267 +
          "maxLength": 512
239 268
        },
240 269
        "isRead": {
241 270
          "type": "boolean"
242 271
        },
243 272
        "readerUrl": {
244 273
          "type": "string",
245 274
          "format": "uri"
246 275
        },
247 276
        "authorName": {
248 277
          "type": "string",
249 -
          "nullable": true
278 +
          "nullable": true,
279 +
          "maxLength": 128
250 280
        },
251 281
        "documentUri": {
252 282
          "type": "string",
253 283
          "format": "at-uri"
254 284
        },
255 285
        "isFollowing": {
256 286
          "type": "boolean"
257 287
        },
258 288
        "publishedAt": {
259 289
          "type": "string",
260 290
          "format": "datetime",
261 291
          "nullable": true
262 292
        },
263 293
        "authorHandle": {
264 294
          "type": "string",
265 -
          "nullable": true
295 +
          "nullable": true,
296 +
          "maxLength": 128
266 297
        },
267 298
        "canonicalUrl": {
268 299
          "type": "string",
269 300
          "format": "uri",
270 301
          "nullable": true
271 302
        },
272 303
        "commentCount": {
273 304
          "type": "integer"
274 305
        },
275 306
        "isBookmarked": {
276 307
          "type": "boolean"
277 308
        },
278 309
        "publicationUri": {
279 310
          "type": "string",
280 311
          "format": "at-uri",
281 312
          "nullable": true
282 313
        },
283 314
        "readingMinutes": {
284 315
          "type": "integer",
285 316
          "nullable": true
286 317
        },
287 318
        "recommendCount": {
288 319
          "type": "integer"
289 320
        },
290 321
        "authorAvatarUrl": {
291 322
          "type": "string",
292 323
          "format": "uri",
293 324
          "nullable": true
294 325
        },
295 326
        "publicationName": {
296 327
          "type": "string",
297 -
          "nullable": true
328 +
          "nullable": true,
329 +
          "maxLength": 128
298 330
        },
299 331
        "publicationHandle": {
300 332
          "type": "string",
301 -
          "nullable": true
333 +
          "nullable": true,
334 +
          "maxLength": 128
302 335
        },
303 336
        "publicationIconUrl": {
304 337
          "type": "string",
305 338
          "format": "uri",
306 339
          "nullable": true
307 340
        },
308 341
        "publicationReaderUrl": {
309 342
          "type": "string",
310 343
          "format": "uri",
311 344
          "nullable": true
312 345
        },
313 346
        "publicationOwnerAvatarUrl": {
314 347
          "type": "string",
315 348
          "format": "uri",
316 349
          "nullable": true
317 350
        },
318 351
        "publicationSubscriberCount": {
319 352
          "type": "integer",
320 353
          "nullable": true
321 354
        }
322 355
      }
323 356
    },
324 357
    "resolveViewUnknown": {
325 358
      "type": "object",
326 359
      "required": [
327 360
        "kind"
328 361
      ],
329 362
      "properties": {
330 363
        "kind": {
331 364
          "type": "string",
332 -
          "const": "unknown"
365 +
          "const": "unknown",
366 +
          "maxLength": 64
333 367
        }
334 368
      }
335 369
    },
336 370
    "cursorPageDocuments": {
337 371
      "type": "object",
338 372
      "required": [
339 373
        "items"
340 374
      ],
341 375
      "properties": {
342 376
        "items": {
343 377
          "type": "array",
344 378
          "items": {
345 379
            "ref": "app.standard-reader.defs#documentView",
346 380
            "type": "ref"
347 381
          }
348 382
        },
349 383
        "cursor": {
350 384
          "type": "string",
351 -
          "nullable": true
385 +
          "nullable": true,
386 +
          "maxLength": 8192
352 387
        }
353 388
      }
354 389
    },
355 390
    "resolveViewReaderLink": {
356 391
      "type": "object",
357 392
      "required": [
358 393
        "kind",
359 394
        "readerUrl"
360 395
      ],
361 396
      "properties": {
362 397
        "kind": {
363 398
          "type": "string",
364 -
          "const": "reader-link"
399 +
          "const": "reader-link",
400 +
          "maxLength": 64
365 401
        },
366 402
        "readerUrl": {
367 -
          "type": "string"
403 +
          "type": "string",
404 +
          "format": "uri",
405 +
          "maxLength": 2048
368 406
        }
369 407
      }
370 408
    },
371 409
    "cursorPagePublications": {
372 410
      "type": "object",
373 411
      "required": [
374 412
        "items"
375 413
      ],
376 414
      "properties": {
377 415
        "items": {
378 416
          "type": "array",
379 417
          "items": {
380 418
            "ref": "app.standard-reader.defs#publicationView",
381 419
            "type": "ref"
382 420
          }
383 421
        },
384 422
        "cursor": {
385 423
          "type": "string",
386 -
          "nullable": true
424 +
          "nullable": true,
425 +
          "maxLength": 8192
387 426
        }
388 427
      }
389 428
    },
390 429
    "resolveViewPublication": {
391 430
      "type": "object",
392 431
      "required": [
393 432
        "kind",
394 433
        "publicationUri",
395 434
        "name",
396 435
        "readerUrl"
397 436
      ],
398 437
      "properties": {
399 438
        "kind": {
400 439
          "type": "string",
401 -
          "const": "publication"
440 +
          "const": "publication",
441 +
          "maxLength": 64
402 442
        },
403 443
        "name": {
404 -
          "type": "string"
444 +
          "type": "string",
445 +
          "maxLength": 128
405 446
        },
406 447
        "handle": {
407 448
          "type": "string",
408 -
          "nullable": true
449 +
          "nullable": true,
450 +
          "maxLength": 128
409 451
        },
410 452
        "iconUrl": {
411 453
          "type": "string",
412 454
          "format": "uri",
413 455
          "nullable": true
414 456
        },
415 457
        "siteUrl": {
416 458
          "type": "string",
417 459
          "format": "uri",
418 460
          "nullable": true
419 461
        },
420 462
        "readerUrl": {
421 463
          "type": "string",
422 464
          "format": "uri"
423 465
        },
424 466
        "description": {
425 467
          "type": "string",
426 -
          "nullable": true
468 +
          "nullable": true,
469 +
          "maxLength": 4096
427 470
        },
428 471
        "isFollowing": {
429 472
          "type": "boolean"
430 473
        },
431 474
        "ownerAvatarUrl": {
432 475
          "type": "string",
433 476
          "format": "uri",
434 477
          "nullable": true
435 478
        },
436 479
        "publicationUri": {
437 480
          "type": "string",
438 481
          "format": "at-uri"
439 482
        },
440 483
        "subscriberCount": {
441 484
          "type": "integer",
442 485
          "nullable": true
443 486
        }
444 487
      }
445 488
    }
446 489
  },
447 490
  "$type": "com.atproto.lexicon.schema",
448 491
  "lexicon": 1
449 492
}

Compare Other Versions

Lexicon Garden

@