parts.page.mention.search
Schema Diff
+67 -0
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 22 non-breaking changes.
Breaking Changes (4)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "parts.page.mention.search#aspectRatio", src: "parts.page.mention.search#aspectRatio", tgt: "parts.page.mention.search#aspectRatio.height", kind: "prop", name: Some("height") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "parts.page.mention.search#aspectRatio", src: "parts.page.mention.search#aspectRatio", tgt: "parts.page.mention.search#aspectRatio.width", kind: "prop", name: Some("width") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "parts.page.mention.search#subscopeInfo", src: "parts.page.mention.search#subscopeInfo", tgt: "parts.page.mention.search#subscopeInfo.label", kind: "prop", name: Some("label") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "parts.page.mention.search#subscopeInfo", src: "parts.page.mention.search#subscopeInfo", tgt: "parts.page.mention.search#subscopeInfo.scope", kind: "prop", name: Some("scope") }
Non-Breaking Changes (22)
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#aspectRatio" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#aspectRatio.height" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#aspectRatio.width" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#embedInfo.aspectRatio" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#mentionLabel" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#mentionLabel.text" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#result.description" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#result.labels" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#result.labels:items" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#result.subscope" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#subscopeInfo" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#subscopeInfo.label" }
- AddedVertex AddedVertex { vertex_id: "parts.page.mention.search#subscopeInfo.scope" }
- AddedEdge AddedEdge { src: "parts.page.mention.search#embedInfo", tgt: "parts.page.mention.search#embedInfo.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- AddedEdge AddedEdge { src: "parts.page.mention.search#embedInfo.aspectRatio", tgt: "parts.page.mention.search#aspectRatio", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "parts.page.mention.search#mentionLabel", tgt: "parts.page.mention.search#mentionLabel.text", kind: "prop", name: Some("text") }
- AddedEdge AddedEdge { src: "parts.page.mention.search#result", tgt: "parts.page.mention.search#result.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "parts.page.mention.search#result", tgt: "parts.page.mention.search#result.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "parts.page.mention.search#result", tgt: "parts.page.mention.search#result.subscope", kind: "prop", name: Some("subscope") }
- AddedEdge AddedEdge { src: "parts.page.mention.search#result.labels", tgt: "parts.page.mention.search#result.labels:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "parts.page.mention.search#result.labels:items", tgt: "parts.page.mention.search#mentionLabel", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "parts.page.mention.search#result.subscope", tgt: "parts.page.mention.search#subscopeInfo", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "parts.page.mention.search#aspectRatio" }AddedVertex { vertex_id: "parts.page.mention.search#aspectRatio.height" }AddedVertex { vertex_id: "parts.page.mention.search#aspectRatio.width" }AddedVertex { vertex_id: "parts.page.mention.search#embedInfo.aspectRatio" }AddedVertex { vertex_id: "parts.page.mention.search#mentionLabel" }AddedVertex { vertex_id: "parts.page.mention.search#mentionLabel.text" }AddedVertex { vertex_id: "parts.page.mention.search#result.description" }AddedVertex { vertex_id: "parts.page.mention.search#result.labels" }AddedVertex { vertex_id: "parts.page.mention.search#result.labels:items" }AddedVertex { vertex_id: "parts.page.mention.search#result.subscope" }AddedVertex { vertex_id: "parts.page.mention.search#subscopeInfo" }AddedVertex { vertex_id: "parts.page.mention.search#subscopeInfo.label" }AddedVertex { vertex_id: "parts.page.mention.search#subscopeInfo.scope" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "parts.page.mention.search#subscopeInfo", src: "parts.page.mention.search#subscopeInfo", tgt: "parts.page.mention.search#subscopeInfo.label", kind: "prop", name: Some("label") }
- Breaking: RequiredEdgeAdded { vertex_id: "parts.page.mention.search#subscopeInfo", src: "parts.page.mention.search#subscopeInfo", tgt: "parts.page.mention.search#subscopeInfo.scope", kind: "prop", name: Some("scope") }
- Breaking: RequiredEdgeAdded { vertex_id: "parts.page.mention.search#aspectRatio", src: "parts.page.mention.search#aspectRatio", tgt: "parts.page.mention.search#aspectRatio.height", kind: "prop", name: Some("height") }
- Breaking: RequiredEdgeAdded { vertex_id: "parts.page.mention.search#aspectRatio", src: "parts.page.mention.search#aspectRatio", tgt: "parts.page.mention.search#aspectRatio.width", kind: "prop", name: Some("width") }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#embedInfo", tgt: "parts.page.mention.search#embedInfo.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#embedInfo.aspectRatio", tgt: "parts.page.mention.search#aspectRatio", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#mentionLabel", tgt: "parts.page.mention.search#mentionLabel.text", kind: "prop", name: Some("text") }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#result", tgt: "parts.page.mention.search#result.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#result", tgt: "parts.page.mention.search#result.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#result", tgt: "parts.page.mention.search#result.subscope", kind: "prop", name: Some("subscope") }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#result.labels", tgt: "parts.page.mention.search#result.labels:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#result.labels:items", tgt: "parts.page.mention.search#mentionLabel", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "parts.page.mention.search#result.subscope", tgt: "parts.page.mention.search#subscopeInfo", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"aspectRatio": {
5
+
"properties": {
6
+
"height": {
7
+
"type": "integer"
8
+
},
9
+
"width": {
10
+
"type": "integer"
11
+
}
12
+
},
13
+
"required": [
14
+
"width",
15
+
"height"
16
+
],
17
+
"type": "object"
18
+
},
4
19
"embedInfo": {
5
20
"properties": {
21
+
"aspectRatio": {
22
+
"description": "Aspect ratio of the embed. If provided, takes precedence over width/height for sizing.",
23
+
"ref": "#aspectRatio",
24
+
"type": "ref"
25
+
},
6
26
"height": {
7
27
"description": "Default height of the embed in pixels",
8
28
"maximum": 3200,
9
29
"minimum": 16,
10
30
"type": "integer"
11
31
},
12
32
"src": {
13
33
"description": "Source URL for the iframe embed",
14
34
"format": "uri",
15
35
"type": "string"
16
36
},
17
37
"width": {
18
38
"description": "Default width of the embed in pixels",
19
39
"maximum": 3200,
20
40
"minimum": 16,
21
41
"type": "integer"
22
42
}
23
43
},
24
44
"required": [
25
45
"src"
26
46
],
27
47
"type": "object"
28
48
},
29
49
"main": {
30
50
"description": "Search a mention service for matching results. A single XRPC host can serve multiple mention services, distinguished by the service AT URI.",
31
51
"output": {
32
52
"encoding": "application/json",
33
53
"schema": {
34
54
"properties": {
35
55
"results": {
36
56
"items": {
37
57
"ref": "#result",
38
58
"type": "ref"
39
59
},
40
60
"maxLength": 50,
41
61
"type": "array"
42
62
}
43
63
},
44
64
"required": [
45
65
"results"
46
66
],
47
67
"type": "object"
48
68
}
49
69
},
50
70
"parameters": {
51
71
"properties": {
52
72
"limit": {
53
73
"default": 20,
54
74
"description": "Maximum number of results to return",
55
75
"maximum": 50,
56
76
"minimum": 1,
57
77
"type": "integer"
58
78
},
79
+
"scope": {
80
+
"description": "Optional scope identifier to narrow results within a service, as returned by a previous result's subscope.scope field",
81
+
"type": "string"
82
+
},
59
83
"search": {
60
84
"description": "Search query string",
61
85
"type": "string"
62
86
},
63
87
"service": {
64
88
"description": "AT URI of the parts.page.mention.service record identifying which service to query",
65
89
"format": "at-uri",
66
90
"type": "string"
67
91
}
68
92
},
69
93
"required": [
70
94
"service",
71
95
"search"
72
96
],
73
97
"type": "params"
74
98
},
75
99
"type": "query"
76
100
},
101
+
"mentionLabel": {
102
+
"properties": {
103
+
"text": {
104
+
"type": "string"
105
+
}
106
+
},
107
+
"type": "object"
108
+
},
77
109
"result": {
78
110
"properties": {
111
+
"description": {
112
+
"description": "A description for the mentioned entity",
113
+
"type": "string"
114
+
},
79
115
"embed": {
80
116
"description": "Optional embed info for creating an embed block instead of an inline mention",
81
117
"ref": "#embedInfo",
82
118
"type": "ref"
83
119
},
84
120
"href": {
85
121
"description": "Optional web URL for the mentioned entity",
86
122
"format": "uri",
87
123
"type": "string"
88
124
},
89
125
"icon": {
90
126
"description": "Optional icon URL for the mentioned entity, displayed next to the mention",
91
127
"format": "uri",
92
128
"type": "string"
93
129
},
130
+
"labels": {
131
+
"description": "A set of labels to be rendered with the mentionedEntity",
132
+
"items": {
133
+
"ref": "#mentionLabel",
134
+
"type": "ref"
135
+
},
136
+
"type": "array"
137
+
},
94
138
"name": {
95
139
"description": "Display name for the mentioned entity",
96
140
"type": "string"
97
141
},
142
+
"subscope": {
143
+
"description": "Optional subscope info indicating this result can be scoped into for further searching",
144
+
"ref": "#subscopeInfo",
145
+
"type": "ref"
146
+
},
98
147
"uri": {
99
148
"description": "Identifier for the mentioned entity",
100
149
"type": "string"
101
150
}
102
151
},
103
152
"required": [
104
153
"uri",
105
154
"name"
106
155
],
107
156
"type": "object"
157
+
},
158
+
"subscopeInfo": {
159
+
"properties": {
160
+
"label": {
161
+
"description": "Display label for the scope-down button (e.g. 'Posts', 'Tracks')",
162
+
"maxLength": 100,
163
+
"type": "string"
164
+
},
165
+
"scope": {
166
+
"description": "Scope identifier passed back to the service in subsequent search queries",
167
+
"type": "string"
168
+
}
169
+
},
170
+
"required": [
171
+
"scope",
172
+
"label"
173
+
],
174
+
"type": "object"
108
175
}
109
176
},
110
177
"id": "parts.page.mention.search",
111
178
"lexicon": 1
112
179
}