blog.pckt.mini.post
Schema Diff
+17 -1
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
}