app.standard-reader.collection
Schema Diff
+29 -7
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 12 non-breaking changes.
Breaking Changes (3)
- KindChanged KindChanged { vertex_id: "app.standard-reader.collection#colophon.body", old_kind: "string", new_kind: "union" }
- KindChanged KindChanged { vertex_id: "app.standard-reader.collection#editorial.body", old_kind: "string", new_kind: "union" }
- KindChanged KindChanged { vertex_id: "app.standard-reader.collection#item.note", old_kind: "string", new_kind: "union" }
Non-Breaking Changes (12)
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.collection#colophon.body:variant0" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.collection#documentLink" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.collection#documentLink.uri" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.collection#editorial.body:variant0" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.collection#item.note:variant0" }
- AddedEdge AddedEdge { src: "app.standard-reader.collection#colophon.body", tgt: "app.standard-reader.collection#colophon.body:variant0", kind: "variant", name: Some("at.markpub.markdown") }
- AddedEdge AddedEdge { src: "app.standard-reader.collection#documentLink", tgt: "app.standard-reader.collection#documentLink.uri", kind: "prop", name: Some("uri") }
- AddedEdge AddedEdge { src: "app.standard-reader.collection#editorial.body", tgt: "app.standard-reader.collection#editorial.body:variant0", kind: "variant", name: Some("at.markpub.markdown") }
- AddedEdge AddedEdge { src: "app.standard-reader.collection#item.note", tgt: "app.standard-reader.collection#item.note:variant0", kind: "variant", name: Some("at.markpub.markdown") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "app.standard-reader.collection#item.note", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "app.standard-reader.collection#editorial.body", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "app.standard-reader.collection#colophon.body", sort: "maxLength" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.standard-reader.collection#colophon.body:variant0" }AddedVertex { vertex_id: "app.standard-reader.collection#documentLink" }AddedVertex { vertex_id: "app.standard-reader.collection#documentLink.uri" }AddedVertex { vertex_id: "app.standard-reader.collection#editorial.body:variant0" }AddedVertex { vertex_id: "app.standard-reader.collection#item.note:variant0" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "app.standard-reader.collection#editorial.body", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "app.standard-reader.collection#colophon.body", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "app.standard-reader.collection#item.note", sort: "maxLength" }
Additional Notes
- Breaking: KindChanged { vertex_id: "app.standard-reader.collection#colophon.body", old_kind: "string", new_kind: "union" }
- Breaking: KindChanged { vertex_id: "app.standard-reader.collection#editorial.body", old_kind: "string", new_kind: "union" }
- Breaking: KindChanged { vertex_id: "app.standard-reader.collection#item.note", old_kind: "string", new_kind: "union" }
- Non-breaking: AddedEdge { src: "app.standard-reader.collection#colophon.body", tgt: "app.standard-reader.collection#colophon.body:variant0", kind: "variant", name: Some("at.markpub.markdown") }
- Non-breaking: AddedEdge { src: "app.standard-reader.collection#documentLink", tgt: "app.standard-reader.collection#documentLink.uri", kind: "prop", name: Some("uri") }
- Non-breaking: AddedEdge { src: "app.standard-reader.collection#editorial.body", tgt: "app.standard-reader.collection#editorial.body:variant0", kind: "variant", name: Some("at.markpub.markdown") }
- Non-breaking: AddedEdge { src: "app.standard-reader.collection#item.note", tgt: "app.standard-reader.collection#item.note:variant0", kind: "variant", name: Some("at.markpub.markdown") }
1
1
{
2
2
"id": "app.standard-reader.collection",
3
3
"defs": {
4
4
"item": {
5
5
"type": "object",
6
6
"required": [
7
7
"document"
8
8
],
9
9
"properties": {
10
10
"note": {
11
-
"type": "string",
12
-
"maxLength": 2000,
13
-
"description": "Optional markdown note shown ahead of the piece."
11
+
"refs": [
12
+
"at.markpub.markdown"
13
+
],
14
+
"type": "union",
15
+
"description": "Optional Markpub markdown note shown ahead of the piece (legacy plain string accepted on read during migration)."
14
16
},
15
17
"document": {
16
18
"type": "string",
17
19
"format": "at-uri",
18
20
"description": "AT URI of an included site.standard.document."
19
21
}
20
22
}
21
23
},
22
24
"main": {
23
25
"key": "any",
24
26
"type": "record",
25
27
"record": {
26
28
"type": "object",
27
29
"required": [
28
30
"document",
29
31
"items",
30
32
"createdAt"
31
33
],
32
34
"properties": {
33
35
"items": {
34
36
"type": "array",
35
37
"items": {
36
38
"ref": "app.standard-reader.collection#item",
37
39
"type": "ref"
38
40
},
39
41
"maxLength": 42,
40
42
"description": "Ordered curated articles plus optional per-item notes."
41
43
},
42
44
"colophon": {
43
45
"ref": "app.standard-reader.collection#colophon",
44
46
"type": "ref"
45
47
},
46
48
"document": {
47
49
"type": "string",
48
50
"format": "at-uri",
49
51
"description": "AT URI of the site.standard.document record this collection renders."
50
52
},
51
53
"createdAt": {
52
54
"type": "string",
53
55
"format": "datetime",
54
56
"description": "When the collection manifest was first published."
55
57
},
56
58
"editorial": {
57
59
"ref": "app.standard-reader.collection#editorial",
58
60
"type": "ref"
59
61
},
60
62
"updatedAt": {
61
63
"type": "string",
62
64
"format": "datetime",
63
65
"description": "When the collection manifest was last edited."
64
66
}
65
67
}
66
68
},
67
69
"description": "Curated magazine collection manifest for a site.standard.document. Uses the same record key as the document it extends so both records can be fetched with one predictable pair of GETs."
68
70
},
69
71
"colophon": {
70
72
"type": "object",
71
73
"properties": {
72
74
"body": {
73
-
"type": "string",
74
-
"maxLength": 8000
75
+
"refs": [
76
+
"at.markpub.markdown"
77
+
],
78
+
"type": "union",
79
+
"description": "Colophon body as Markpub markdown (legacy plain string accepted on read during migration)."
75
80
}
76
81
},
77
82
"description": "Optional closing credits on the magazine end spread."
78
83
},
79
84
"editorial": {
80
85
"type": "object",
81
86
"properties": {
82
87
"body": {
83
-
"type": "string",
84
-
"maxLength": 8000
88
+
"refs": [
89
+
"at.markpub.markdown"
90
+
],
91
+
"type": "union",
92
+
"description": "Editorial body as Markpub markdown (legacy plain string accepted on read during migration)."
85
93
},
86
94
"title": {
87
95
"type": "string",
88
96
"maxLength": 160
89
97
}
90
98
},
91
99
"description": "Optional editorial intro shown ahead of the curated pieces."
100
+
},
101
+
"documentLink": {
102
+
"type": "object",
103
+
"required": [
104
+
"uri"
105
+
],
106
+
"properties": {
107
+
"uri": {
108
+
"type": "string",
109
+
"format": "at-uri",
110
+
"description": "AT URI of the app.standard-reader.collection sidecar record."
111
+
}
112
+
},
113
+
"description": "Inverse link entry for site.standard.document#links pointing back at this collection sidecar."
92
114
}
93
115
},
94
116
"$type": "com.atproto.lexicon.schema",
95
117
"lexicon": 1
96
118
}