app.standard-reader.defs

standard-reader.app

Schema Diff

+132 -33

From

CID
bafyreig5u3besln...
Indexed At
2026-06-13 04:55 UTC
View this version

To

CID
bafyreiegzkudsys...
Indexed At
2026-07-21 07:06 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

38 breaking changes, 22 non-breaking changes.

Breaking Changes (38)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.name", kind: "prop", name: Some("name") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.publications", kind: "prop", name: Some("publications") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#cursorPageProfiles", src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.items", kind: "prop", name: Some("items") }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPagePublications.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "format", value: "uri" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.displayName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationTopic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPageDocuments.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.tags:items", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationOwnerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchNameHtml", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.ownerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchTitleHtml", sort: "maxLength", value: "1024" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewUnknown.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.path", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.topic", sort: "maxLength", value: "128" }
Non-Breaking Changes (22)
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.cursor" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items:items" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#documentView.content" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#documentView.contentFormat" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.createdAt" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.description" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.name" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications:items" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.uri" }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.cursor", kind: "prop", name: Some("cursor") }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items", tgt: "app.standard-reader.defs#cursorPageProfiles.items:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items:items", tgt: "app.standard-reader.defs#profileView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.content", kind: "prop", name: Some("content") }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.contentFormat", kind: "prop", name: Some("contentFormat") }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.createdAt", kind: "prop", name: Some("createdAt") }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#listView.publications", tgt: "app.standard-reader.defs#listView.publications:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.standard-reader.defs#listView.publications:items", tgt: "app.standard-reader.defs#publicationView", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.cursor" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items:items" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#documentView.content" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#documentView.contentFormat" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView.createdAt" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView.description" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView.name" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications:items" }
  • AddedVertex { vertex_id: "app.standard-reader.defs#listView.uri" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.path", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchNameHtml", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationOwnerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchTitleHtml", sort: "maxLength", value: "1024" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.topic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPageDocuments.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.handle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.tags:items", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.searchSnippetHtml", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewPublication.description", sort: "maxLength", value: "4096" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.authorHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.ownerHandle", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#publicationView.name", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewUnknown.kind", sort: "maxLength", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.title", sort: "maxLength", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#profileView.displayName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#cursorPagePublications.cursor", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "maxLength", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewReaderLink.readerUrl", sort: "format", value: "uri" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.publicationName", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#documentView.publicationTopic", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.standard-reader.defs#resolveViewArticle.title", sort: "maxLength", value: "512" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.uri", kind: "prop", name: Some("uri") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.name", kind: "prop", name: Some("name") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.publications", kind: "prop", name: Some("publications") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#cursorPageProfiles", src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.items", kind: "prop", name: Some("items") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.cursor", kind: "prop", name: Some("cursor") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items", tgt: "app.standard-reader.defs#cursorPageProfiles.items:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items:items", tgt: "app.standard-reader.defs#profileView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.content", kind: "prop", name: Some("content") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#documentView", tgt: "app.standard-reader.defs#documentView.contentFormat", kind: "prop", name: Some("contentFormat") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.createdAt", kind: "prop", name: Some("createdAt") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView.publications", tgt: "app.standard-reader.defs#listView.publications:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView.publications:items", tgt: "app.standard-reader.defs#publicationView", kind: "ref", name: None }
1 1
{
2 2
  "id": "app.standard-reader.defs",
3 3
  "defs": {
4 +
    "listView": {
5 +
      "type": "object",
6 +
      "required": [
7 +
        "uri",
8 +
        "name",
9 +
        "publications"
10 +
      ],
11 +
      "properties": {
12 +
        "uri": {
13 +
          "type": "string",
14 +
          "format": "at-uri"
15 +
        },
16 +
        "name": {
17 +
          "type": "string",
18 +
          "maxLength": 128
19 +
        },
20 +
        "createdAt": {
21 +
          "type": "string",
22 +
          "format": "datetime",
23 +
          "nullable": true
24 +
        },
25 +
        "description": {
26 +
          "type": "string",
27 +
          "nullable": true,
28 +
          "maxLength": 4096
29 +
        },
30 +
        "publications": {
31 +
          "type": "array",
32 +
          "items": {
33 +
            "ref": "app.standard-reader.defs#publicationView",
34 +
            "type": "ref"
35 +
          }
36 +
        }
37 +
      },
38 +
      "description": "A reader-authored publication list (app.standard-reader.list) with its member publications resolved."
39 +
    },
4 40
    "profileView": {
5 41
      "type": "object",
6 42
      "required": [
7 43
        "did"
8 44
      ],
9 45
      "properties": {
10 46
        "did": {
11 47
          "type": "string",
12 48
          "format": "did"
13 49
        },
14 50
        "handle": {
15 51
          "type": "string",
16 -
          "nullable": true
52 +
          "nullable": true,
53 +
          "maxLength": 128
17 54
        },
18 55
        "avatarUrl": {
19 56
          "type": "string",
20 57
          "format": "uri",
21 58
          "nullable": true
22 59
        },
23 60
        "bannerUrl": {
24 61
          "type": "string",
25 62
          "format": "uri",
26 63
          "nullable": true
27 64
        },
28 65
        "description": {
29 66
          "type": "string",
30 -
          "nullable": true
67 +
          "nullable": true,
68 +
          "maxLength": 4096
31 69
        },
32 70
        "displayName": {
33 71
          "type": "string",
34 -
          "nullable": true
72 +
          "nullable": true,
73 +
          "maxLength": 128
35 74
        }
36 75
      }
37 76
    },
38 77
    "documentView": {
39 78
      "type": "object",
40 79
      "required": [
41 80
        "uri",
42 81
        "did",
43 82
        "title",
44 83
        "publishedAt",
45 84
        "recommendCount",
46 85
        "commentCount",
47 86
        "hasRenderableBody",
48 87
        "isRead"
49 88
      ],
50 89
      "properties": {
51 90
        "did": {
52 91
          "type": "string",
53 92
          "format": "did"
54 93
        },
55 94
        "uri": {
56 95
          "type": "string",
57 96
          "format": "at-uri"
58 97
        },
59 98
        "path": {
60 99
          "type": "string",
61 -
          "nullable": true
100 +
          "nullable": true,
101 +
          "maxLength": 2048
62 102
        },
63 103
        "tags": {
64 104
          "type": "array",
65 105
          "items": {
66 -
            "type": "string"
106 +
            "type": "string",
107 +
            "maxLength": 128
67 108
          },
68 109
          "nullable": true
69 110
        },
70 111
        "title": {
71 -
          "type": "string"
112 +
          "type": "string",
113 +
          "maxLength": 512
72 114
        },
73 115
        "isRead": {
74 116
          "type": "boolean"
75 117
        },
118 +
        "content": {
119 +
          "type": "unknown",
120 +
          "description": "Renderable body payload (the content-union of the site.standard.document record). Only populated by getDocument; omitted from feed and search views."
121 +
        },
76 122
        "featured": {
77 123
          "type": "boolean"
78 124
        },
79 125
        "description": {
80 126
          "type": "string",
81 -
          "nullable": true
127 +
          "nullable": true,
128 +
          "maxLength": 4096
82 129
        },
83 130
        "publishedAt": {
84 131
          "type": "string",
85 132
          "format": "datetime"
86 133
        },
87 134
        "canonicalUrl": {
88 135
          "type": "string",
89 136
          "format": "uri",
90 137
          "nullable": true
91 138
        },
92 139
        "commentCount": {
93 140
          "type": "integer"
94 141
        },
142 +
        "contentFormat": {
143 +
          "type": "string",
144 +
          "maxLength": 256,
145 +
          "description": "Explicit content-union $type, used when the body payload lacks one. Only populated by getDocument."
146 +
        },
95 147
        "coverImageUrl": {
96 148
          "type": "string",
97 149
          "format": "uri",
98 150
          "nullable": true
99 151
        },
100 152
        "publicationUri": {
101 153
          "type": "string",
102 154
          "format": "at-uri",
103 155
          "nullable": true
104 156
        },
105 157
        "recommendCount": {
106 158
          "type": "integer"
107 159
        },
108 160
        "publicationName": {
109 161
          "type": "string",
110 -
          "nullable": true
162 +
          "nullable": true,
163 +
          "maxLength": 128
111 164
        },
112 165
        "searchTitleHtml": {
113 166
          "type": "string",
114 -
          "nullable": true
167 +
          "nullable": true,
168 +
          "maxLength": 1024
115 169
        },
116 170
        "publicationTopic": {
117 171
          "type": "string",
118 -
          "nullable": true
172 +
          "nullable": true,
173 +
          "maxLength": 128
119 174
        },
120 175
        "hasRenderableBody": {
121 176
          "type": "boolean"
122 177
        },
123 178
        "searchSnippetHtml": {
124 179
          "type": "string",
125 -
          "nullable": true
180 +
          "nullable": true,
181 +
          "maxLength": 8192
126 182
        },
127 183
        "publicationIconUrl": {
128 184
          "type": "string",
129 185
          "format": "uri",
130 186
          "nullable": true
131 187
        },
132 188
        "publicationBannerUrl": {
133 189
          "type": "string",
134 190
          "format": "uri",
135 191
          "nullable": true
136 192
        },
137 193
        "publicationOwnerHandle": {
138 194
          "type": "string",
139 -
          "nullable": true
195 +
          "nullable": true,
196 +
          "maxLength": 128
140 197
        },
141 198
        "publicationOwnerAvatarUrl": {
142 199
          "type": "string",
143 200
          "format": "uri",
144 201
          "nullable": true
145 202
        }
146 203
      },
147 204
      "description": "An article as shown in feed rows and search results (metadata only)."
148 205
    },
149 206
    "publicationView": {
150 207
      "type": "object",
151 208
      "required": [
152 209
        "uri",
153 210
        "did",
154 211
        "name",
155 212
        "url",
156 213
        "subscriberCount",
157 214
        "documentCount"
158 215
      ],
159 216
      "properties": {
160 217
        "did": {
161 218
          "type": "string",
162 219
          "format": "did"
163 220
        },
164 221
        "uri": {
165 222
          "type": "string",
166 223
          "format": "at-uri"
167 224
        },
168 225
        "url": {
169 226
          "type": "string",
170 227
          "format": "uri"
171 228
        },
172 229
        "name": {
173 -
          "type": "string"
230 +
          "type": "string",
231 +
          "maxLength": 128
174 232
        },
175 233
        "topic": {
176 234
          "type": "string",
177 -
          "nullable": true
235 +
          "nullable": true,
236 +
          "maxLength": 128
178 237
        },
179 238
        "iconUrl": {
180 239
          "type": "string",
181 240
          "format": "uri",
182 241
          "nullable": true
183 242
        },
184 243
        "verified": {
185 244
          "type": "boolean"
186 245
        },
187 246
        "description": {
188 247
          "type": "string",
189 -
          "nullable": true
248 +
          "nullable": true,
249 +
          "maxLength": 4096
190 250
        },
191 251
        "ownerHandle": {
192 252
          "type": "string",
193 -
          "nullable": true
253 +
          "nullable": true,
254 +
          "maxLength": 128
194 255
        },
195 256
        "documentCount": {
196 257
          "type": "integer"
197 258
        },
198 259
        "lastDocumentAt": {
199 260
          "type": "string",
200 261
          "format": "datetime",
201 262
          "nullable": true
202 263
        },
203 264
        "ownerAvatarUrl": {
204 265
          "type": "string",
205 266
          "format": "uri",
206 267
          "nullable": true
207 268
        },
208 269
        "searchNameHtml": {
209 270
          "type": "string",
210 -
          "nullable": true
271 +
          "nullable": true,
272 +
          "maxLength": 512
211 273
        },
212 274
        "subscriberCount": {
213 275
          "type": "integer"
214 276
        },
215 277
        "searchSnippetHtml": {
216 278
          "type": "string",
217 -
          "nullable": true
279 +
          "nullable": true,
280 +
          "maxLength": 8192
218 281
        }
219 282
      },
220 283
      "description": "A publication as shown in directory cards and profile headers."
221 284
    },
285 +
    "cursorPageProfiles": {
286 +
      "type": "object",
287 +
      "required": [
288 +
        "items"
289 +
      ],
290 +
      "properties": {
291 +
        "items": {
292 +
          "type": "array",
293 +
          "items": {
294 +
            "ref": "app.standard-reader.defs#profileView",
295 +
            "type": "ref"
296 +
          }
297 +
        },
298 +
        "cursor": {
299 +
          "type": "string",
300 +
          "nullable": true,
301 +
          "maxLength": 8192
302 +
        }
303 +
      }
304 +
    },
222 305
    "resolveViewArticle": {
223 306
      "type": "object",
224 307
      "required": [
225 308
        "kind",
226 309
        "documentUri",
227 310
        "title",
228 311
        "readerUrl",
229 312
        "recommendCount",
230 313
        "commentCount"
231 314
      ],
232 315
      "properties": {
233 316
        "kind": {
234 317
          "type": "string",
235 -
          "const": "article"
318 +
          "const": "article",
319 +
          "maxLength": 64
236 320
        },
237 321
        "title": {
238 -
          "type": "string"
322 +
          "type": "string",
323 +
          "maxLength": 512
239 324
        },
240 325
        "isRead": {
241 326
          "type": "boolean"
242 327
        },
243 328
        "readerUrl": {
244 329
          "type": "string",
245 330
          "format": "uri"
246 331
        },
247 332
        "authorName": {
248 333
          "type": "string",
249 -
          "nullable": true
334 +
          "nullable": true,
335 +
          "maxLength": 128
250 336
        },
251 337
        "documentUri": {
252 338
          "type": "string",
253 339
          "format": "at-uri"
254 340
        },
255 341
        "isFollowing": {
256 342
          "type": "boolean"
257 343
        },
258 344
        "publishedAt": {
259 345
          "type": "string",
260 346
          "format": "datetime",
261 347
          "nullable": true
262 348
        },
263 349
        "authorHandle": {
264 350
          "type": "string",
265 -
          "nullable": true
351 +
          "nullable": true,
352 +
          "maxLength": 128
266 353
        },
267 354
        "canonicalUrl": {
268 355
          "type": "string",
269 356
          "format": "uri",
270 357
          "nullable": true
271 358
        },
272 359
        "commentCount": {
273 360
          "type": "integer"
274 361
        },
275 362
        "isBookmarked": {
276 363
          "type": "boolean"
277 364
        },
278 365
        "publicationUri": {
279 366
          "type": "string",
280 367
          "format": "at-uri",
281 368
          "nullable": true
282 369
        },
283 370
        "readingMinutes": {
284 371
          "type": "integer",
285 372
          "nullable": true
286 373
        },
287 374
        "recommendCount": {
288 375
          "type": "integer"
289 376
        },
290 377
        "authorAvatarUrl": {
291 378
          "type": "string",
292 379
          "format": "uri",
293 380
          "nullable": true
294 381
        },
295 382
        "publicationName": {
296 383
          "type": "string",
297 -
          "nullable": true
384 +
          "nullable": true,
385 +
          "maxLength": 128
298 386
        },
299 387
        "publicationHandle": {
300 388
          "type": "string",
301 -
          "nullable": true
389 +
          "nullable": true,
390 +
          "maxLength": 128
302 391
        },
303 392
        "publicationIconUrl": {
304 393
          "type": "string",
305 394
          "format": "uri",
306 395
          "nullable": true
307 396
        },
308 397
        "publicationReaderUrl": {
309 398
          "type": "string",
310 399
          "format": "uri",
311 400
          "nullable": true
312 401
        },
313 402
        "publicationOwnerAvatarUrl": {
314 403
          "type": "string",
315 404
          "format": "uri",
316 405
          "nullable": true
317 406
        },
318 407
        "publicationSubscriberCount": {
319 408
          "type": "integer",
320 409
          "nullable": true
321 410
        }
322 411
      }
323 412
    },
324 413
    "resolveViewUnknown": {
325 414
      "type": "object",
326 415
      "required": [
327 416
        "kind"
328 417
      ],
329 418
      "properties": {
330 419
        "kind": {
331 420
          "type": "string",
332 -
          "const": "unknown"
421 +
          "const": "unknown",
422 +
          "maxLength": 64
333 423
        }
334 424
      }
335 425
    },
336 426
    "cursorPageDocuments": {
337 427
      "type": "object",
338 428
      "required": [
339 429
        "items"
340 430
      ],
341 431
      "properties": {
342 432
        "items": {
343 433
          "type": "array",
344 434
          "items": {
345 435
            "ref": "app.standard-reader.defs#documentView",
346 436
            "type": "ref"
347 437
          }
348 438
        },
349 439
        "cursor": {
350 440
          "type": "string",
351 -
          "nullable": true
441 +
          "nullable": true,
442 +
          "maxLength": 8192
352 443
        }
353 444
      }
354 445
    },
355 446
    "resolveViewReaderLink": {
356 447
      "type": "object",
357 448
      "required": [
358 449
        "kind",
359 450
        "readerUrl"
360 451
      ],
361 452
      "properties": {
362 453
        "kind": {
363 454
          "type": "string",
364 -
          "const": "reader-link"
455 +
          "const": "reader-link",
456 +
          "maxLength": 64
365 457
        },
366 458
        "readerUrl": {
367 -
          "type": "string"
459 +
          "type": "string",
460 +
          "format": "uri",
461 +
          "maxLength": 2048
368 462
        }
369 463
      }
370 464
    },
371 465
    "cursorPagePublications": {
372 466
      "type": "object",
373 467
      "required": [
374 468
        "items"
375 469
      ],
376 470
      "properties": {
377 471
        "items": {
378 472
          "type": "array",
379 473
          "items": {
380 474
            "ref": "app.standard-reader.defs#publicationView",
381 475
            "type": "ref"
382 476
          }
383 477
        },
384 478
        "cursor": {
385 479
          "type": "string",
386 -
          "nullable": true
480 +
          "nullable": true,
481 +
          "maxLength": 8192
387 482
        }
388 483
      }
389 484
    },
390 485
    "resolveViewPublication": {
391 486
      "type": "object",
392 487
      "required": [
393 488
        "kind",
394 489
        "publicationUri",
395 490
        "name",
396 491
        "readerUrl"
397 492
      ],
398 493
      "properties": {
399 494
        "kind": {
400 495
          "type": "string",
401 -
          "const": "publication"
496 +
          "const": "publication",
497 +
          "maxLength": 64
402 498
        },
403 499
        "name": {
404 -
          "type": "string"
500 +
          "type": "string",
501 +
          "maxLength": 128
405 502
        },
406 503
        "handle": {
407 504
          "type": "string",
408 -
          "nullable": true
505 +
          "nullable": true,
506 +
          "maxLength": 128
409 507
        },
410 508
        "iconUrl": {
411 509
          "type": "string",
412 510
          "format": "uri",
413 511
          "nullable": true
414 512
        },
415 513
        "siteUrl": {
416 514
          "type": "string",
417 515
          "format": "uri",
418 516
          "nullable": true
419 517
        },
420 518
        "readerUrl": {
421 519
          "type": "string",
422 520
          "format": "uri"
423 521
        },
424 522
        "description": {
425 523
          "type": "string",
426 -
          "nullable": true
524 +
          "nullable": true,
525 +
          "maxLength": 4096
427 526
        },
428 527
        "isFollowing": {
429 528
          "type": "boolean"
430 529
        },
431 530
        "ownerAvatarUrl": {
432 531
          "type": "string",
433 532
          "format": "uri",
434 533
          "nullable": true
435 534
        },
436 535
        "publicationUri": {
437 536
          "type": "string",
438 537
          "format": "at-uri"
439 538
        },
440 539
        "subscriberCount": {
441 540
          "type": "integer",
442 541
          "nullable": true
443 542
        }
444 543
      }
445 544
    }
446 545
  },
447 546
  "$type": "com.atproto.lexicon.schema",
448 547
  "lexicon": 1
449 548
}

Compare Other Versions

Lexicon Garden

@