at.inlay.component
Schema Diff
+81 -14
1
1
{
2
2
"id": "at.inlay.component",
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
"type"
11
11
],
12
12
"properties": {
13
13
"via": {
14
14
"refs": [
15
15
"at.inlay.defs#viaValtown"
16
16
],
17
17
"type": "union",
18
18
"description": "Platform-managed deployment metadata"
19
19
},
20
20
"body": {
21
21
"refs": [
22
-
"#external",
23
-
"#template"
22
+
"#bodyExternal",
23
+
"#bodyTemplate"
24
24
],
25
25
"type": "union",
26
26
"description": "How this component is rendered. Omit for primitives rendered by the host."
27
27
},
28
28
"type": {
29
29
"type": "string",
30
30
"format": "nsid",
31
31
"description": "NSID this component implements (also the XRPC procedure)"
32
32
},
33
+
"view": {
34
+
"type": "array",
35
+
"items": {
36
+
"refs": [
37
+
"#viewRecord",
38
+
"#viewCollection",
39
+
"#viewIdentity"
40
+
],
41
+
"type": "union"
42
+
},
43
+
"description": "What kinds of pages this component is a view for"
44
+
},
45
+
"accepts": {
46
+
"type": "array",
47
+
"items": {
48
+
"ref": "#acceptsEntry",
49
+
"type": "ref"
50
+
},
51
+
"description": "Data types this component can render. Used for data-driven discovery."
52
+
},
33
53
"imports": {
34
54
"type": "array",
35
55
"items": {
36
56
"ref": "#import",
37
57
"type": "ref"
38
58
},
39
59
"description": "Where to resolve types from"
40
60
},
41
61
"createdAt": {
42
62
"type": "string",
43
63
"format": "datetime"
44
64
},
45
-
"collection": {
46
-
"type": "string",
47
-
"description": "Collection type this component renders. An NSID for specific collections, or '*' for universal components (e.g. JSON viewers). Omit for generic components like layout primitives.",
48
-
"knownValues": [
49
-
"*"
50
-
]
51
-
},
52
65
"description": {
53
-
"type": "string"
54
-
},
55
-
"displayName": {
56
66
"type": "string"
57
67
}
58
68
}
59
69
},
60
70
"description": "Component record - declares an implementation of a type"
61
71
},
62
72
"import": {
63
73
"type": "object",
64
74
"required": [
65
75
"types",
66
76
"pack"
67
77
],
68
78
"properties": {
69
79
"pack": {
70
80
"type": "string",
71
81
"format": "at-uri",
72
82
"description": "Pack to resolve from"
73
83
},
74
84
"types": {
75
85
"type": "string",
76
86
"description": "Type pattern to match (glob like com.alice.* or concrete like com.alice.Avatar)"
77
87
}
78
88
}
79
89
},
80
-
"external": {
90
+
"viewRecord": {
91
+
"type": "object",
92
+
"properties": {
93
+
"collection": {
94
+
"type": "string",
95
+
"format": "nsid",
96
+
"description": "The collection this component views. Omit for any-collection."
97
+
}
98
+
},
99
+
"description": "Component is a view for individual records of a collection. Omit collection for a generic record view."
100
+
},
101
+
"acceptsEntry": {
81
102
"type": "object",
82
103
"required": [
104
+
"format",
105
+
"prop"
106
+
],
107
+
"properties": {
108
+
"prop": {
109
+
"type": "string",
110
+
"description": "Prop to bind matched data to"
111
+
},
112
+
"format": {
113
+
"type": "string",
114
+
"description": "Data format this entry matches",
115
+
"knownValues": [
116
+
"at-uri",
117
+
"did",
118
+
"blob",
119
+
"datetime",
120
+
"uri"
121
+
]
122
+
},
123
+
"collection": {
124
+
"type": "string",
125
+
"format": "nsid",
126
+
"description": "For at-uri format: restrict to this collection"
127
+
}
128
+
},
129
+
"description": "A data type this component can render via a specific prop"
130
+
},
131
+
"bodyExternal": {
132
+
"type": "object",
133
+
"required": [
83
134
"did"
84
135
],
85
136
"properties": {
86
137
"did": {
87
138
"type": "string",
88
139
"format": "did",
89
140
"description": "DID of the service hosting this component"
90
141
}
91
142
},
92
143
"description": "Component rendered by calling a remote XRPC endpoint"
93
144
},
94
-
"template": {
145
+
"bodyTemplate": {
95
146
"type": "object",
96
147
"required": [
97
148
"node"
98
149
],
99
150
"properties": {
100
151
"node": {
101
152
"type": "unknown",
102
153
"description": "Serialized element tree with bindings"
103
154
}
104
155
},
105
156
"description": "Component rendered by the host from a serialized element tree"
157
+
},
158
+
"viewIdentity": {
159
+
"type": "object",
160
+
"properties": {},
161
+
"description": "Component is a view for an identity (person/DID)."
162
+
},
163
+
"viewCollection": {
164
+
"type": "object",
165
+
"properties": {
166
+
"collection": {
167
+
"type": "string",
168
+
"format": "nsid",
169
+
"description": "The collection this component lists. Omit for any-collection."
170
+
}
171
+
},
172
+
"description": "Component is a view for a collection listing. Omit collection for a generic collection view."
106
173
}
107
174
},
108
175
"$type": "com.atproto.lexicon.schema",
109
176
"lexicon": 1
110
177
}