app.offprint.publication
Schema Diff
+38 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 16 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.offprint.publication#navItem", src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.label", kind: "prop", name: Some("label") }
Non-Breaking Changes (16)
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.children" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.children:items" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.external" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.href" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication#navItem.label" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication:body.navigation" }
- AddedVertex AddedVertex { vertex_id: "app.offprint.publication:body.navigation:items" }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.children", kind: "prop", name: Some("children") }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.external", kind: "prop", name: Some("external") }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.href", kind: "prop", name: Some("href") }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem.children", tgt: "app.offprint.publication#navItem.children:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.offprint.publication#navItem.children:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.offprint.publication:body", tgt: "app.offprint.publication:body.navigation", kind: "prop", name: Some("navigation") }
- AddedEdge AddedEdge { src: "app.offprint.publication:body.navigation", tgt: "app.offprint.publication:body.navigation:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.offprint.publication:body.navigation:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.offprint.publication#navItem" }AddedVertex { vertex_id: "app.offprint.publication#navItem.children" }AddedVertex { vertex_id: "app.offprint.publication#navItem.children:items" }AddedVertex { vertex_id: "app.offprint.publication#navItem.external" }AddedVertex { vertex_id: "app.offprint.publication#navItem.href" }AddedVertex { vertex_id: "app.offprint.publication#navItem.label" }AddedVertex { vertex_id: "app.offprint.publication:body.navigation" }AddedVertex { vertex_id: "app.offprint.publication:body.navigation:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.offprint.publication#navItem", src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.label", kind: "prop", name: Some("label") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.children", kind: "prop", name: Some("children") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.external", kind: "prop", name: Some("external") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem", tgt: "app.offprint.publication#navItem.href", kind: "prop", name: Some("href") }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem.children", tgt: "app.offprint.publication#navItem.children:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.offprint.publication#navItem.children:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.offprint.publication:body", tgt: "app.offprint.publication:body.navigation", kind: "prop", name: Some("navigation") }
- Non-breaking: AddedEdge { src: "app.offprint.publication:body.navigation", tgt: "app.offprint.publication:body.navigation:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.offprint.publication:body.navigation:items", tgt: "app.offprint.publication#navItem", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"record": {
7
7
"properties": {
8
+
"navigation": {
9
+
"description": "Ordered top-level navigation items. Omitted when the publication uses the default navigation.",
10
+
"items": {
11
+
"ref": "#navItem",
12
+
"type": "ref"
13
+
},
14
+
"type": "array"
15
+
},
8
16
"publication": {
9
17
"description": "Required AT-URI to a `site.standard.publication` compatible record.",
10
18
"format": "at-uri",
11
-
"required": true,
12
19
"type": "string"
13
20
}
14
21
},
15
22
"required": [
16
23
"publication"
17
24
],
18
25
"type": "object"
19
26
},
20
27
"type": "record"
28
+
},
29
+
"navItem": {
30
+
"properties": {
31
+
"children": {
32
+
"description": "Nested items that render as a dropdown. Up to two levels deep.",
33
+
"items": {
34
+
"ref": "#navItem",
35
+
"type": "ref"
36
+
},
37
+
"type": "array"
38
+
},
39
+
"external": {
40
+
"default": false,
41
+
"description": "Whether the link opens an external site.",
42
+
"type": "boolean"
43
+
},
44
+
"href": {
45
+
"description": "Resolved destination: a root-relative path or an absolute URL. Omitted for a dropdown-only label.",
46
+
"type": "string"
47
+
},
48
+
"label": {
49
+
"description": "Display label for the navigation item.",
50
+
"maxGraphemes": 200,
51
+
"type": "string"
52
+
}
53
+
},
54
+
"required": [
55
+
"label"
56
+
],
57
+
"type": "object"
21
58
}
22
59
},
23
60
"id": "app.offprint.publication",
24
61
"lexicon": 1
25
62
}