app.standard-reader.collection

standard-reader.app

Schema Diff

+29 -7

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

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
}

Compare Other Versions

Lexicon Garden

@