app.standard-reader.collection

standard-reader.app

Schema Diff

+28 -6

From

CID
bafyreiexstzfbg2...
Indexed At
2026-06-17 21:47 UTC
View this version

To

CID
bafyreie2w6a2jri...
Indexed At
2026-06-18 01:48 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@