app.offprint.publication

offprint.app

Schema Diff

+38 -1

From

CID
bafyreiba43jae3v...
Indexed At
2026-02-18 18:18 UTC
View this version

To

CID
bafyreieerpl6lja...
Indexed At
2026-07-26 20:12 UTC
View this version

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
  "id": "app.offprint.publication",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "publication"
11 11
        ],
12 12
        "properties": {
13 +
          "navigation": {
14 +
            "type": "array",
15 +
            "items": {
16 +
              "ref": "#navItem",
17 +
              "type": "ref"
18 +
            },
19 +
            "description": "Ordered top-level navigation items. Omitted when the publication uses the default navigation."
20 +
          },
13 21
          "publication": {
14 22
            "type": "string",
15 23
            "format": "at-uri",
16 -
            "required": true,
17 24
            "description": "Required AT-URI to a `site.standard.publication` compatible record."
18 25
          }
19 26
        }
20 27
      }
28 +
    },
29 +
    "navItem": {
30 +
      "type": "object",
31 +
      "required": [
32 +
        "label"
33 +
      ],
34 +
      "properties": {
35 +
        "href": {
36 +
          "type": "string",
37 +
          "description": "Resolved destination: a root-relative path or an absolute URL. Omitted for a dropdown-only label."
38 +
        },
39 +
        "label": {
40 +
          "type": "string",
41 +
          "description": "Display label for the navigation item.",
42 +
          "maxGraphemes": 200
43 +
        },
44 +
        "children": {
45 +
          "type": "array",
46 +
          "items": {
47 +
            "ref": "#navItem",
48 +
            "type": "ref"
49 +
          },
50 +
          "description": "Nested items that render as a dropdown. Up to two levels deep."
51 +
        },
52 +
        "external": {
53 +
          "type": "boolean",
54 +
          "default": false,
55 +
          "description": "Whether the link opens an external site."
56 +
        }
57 +
      }
21 58
    }
22 59
  },
23 60
  "$type": "com.atproto.lexicon.schema",
24 61
  "lexicon": 1
25 62
}

Compare Other Versions

Lexicon Garden

@