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