social.colibri.sync.subscribeEvents
Schema Diff
+94 -1
Compatibility Analysis
Breaking Changes Detected
11 breaking changes, 28 non-breaking changes.
Breaking Changes (11)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.origin", kind: "prop", name: Some("origin") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.community", kind: "prop", name: Some("community") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.subject", kind: "prop", name: Some("subject") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.ttl", kind: "prop", name: Some("ttl") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.id", kind: "prop", name: Some("id") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event", kind: "prop", name: Some("event") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type", kind: "prop", name: Some("type") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", kind: "prop", name: Some("data") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel", kind: "prop", name: Some("channel") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did", kind: "prop", name: Some("did") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event", kind: "prop", name: Some("event") }
Non-Breaking Changes (28)
- AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#typingEvent" }
- AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#userEvent" }
- AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent" }
- AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.community" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.id" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.origin" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.subject" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.ttl" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event" }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#userEvent") }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#typingEvent") }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#voicePresenceEvent") }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", tgt: "lex:social.colibri.sync.subscribeEvents#userEvent", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", tgt: "lex:social.colibri.sync.subscribeEvents#typingEvent", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#typingEvent" }AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#userEvent" }AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent" }AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.community" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.id" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.origin" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.subject" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.ttl" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did" }AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type", kind: "prop", name: Some("type") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", kind: "prop", name: Some("data") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.origin", kind: "prop", name: Some("origin") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.community", kind: "prop", name: Some("community") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.subject", kind: "prop", name: Some("subject") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.ttl", kind: "prop", name: Some("ttl") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.id", kind: "prop", name: Some("id") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event", kind: "prop", name: Some("event") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel", kind: "prop", name: Some("channel") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did", kind: "prop", name: Some("did") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event", kind: "prop", name: Some("event") }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#userEvent") }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#typingEvent") }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#voicePresenceEvent") }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", tgt: "lex:social.colibri.sync.subscribeEvents#userEvent", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", tgt: "lex:social.colibri.sync.subscribeEvents#typingEvent", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"ack": {
5
5
"description": "Sent in response to a heartbeat message.",
6
6
"properties": {
7
7
"type": {
8
8
"const": "ack",
9
9
"type": "string"
10
10
}
11
11
},
12
12
"required": [
13
13
"type"
14
14
],
15
15
"type": "object"
16
16
},
17
17
"categoryEvent": {
18
18
"description": "Sent when a category has been created, updated, or deleted.",
19
19
"properties": {
20
20
"data": {
21
21
"ref": "lex:social.colibri.sync.subscribeEvents#categoryEventData",
22
22
"type": "ref"
23
23
},
24
24
"type": {
25
25
"const": "category_event",
26
26
"type": "string"
27
27
}
28
28
},
29
29
"required": [
30
30
"type",
31
31
"data"
32
32
],
33
33
"type": "object"
34
34
},
35
35
"categoryEventData": {
36
36
"properties": {
37
37
"channelOrder": {
38
38
"items": {
39
39
"type": "string"
40
40
},
41
41
"type": "array"
42
42
},
43
43
"community": {
44
44
"format": "at-uri",
45
45
"type": "string"
46
46
},
47
47
"event": {
48
48
"knownValues": [
49
49
"upsert",
50
50
"delete"
51
51
],
52
52
"type": "string"
53
53
},
54
54
"name": {
55
55
"type": "string"
56
56
},
57
57
"uri": {
58
58
"format": "at-uri",
59
59
"type": "string"
60
60
}
61
61
},
62
62
"required": [
63
63
"event",
64
64
"uri",
65
65
"community"
66
66
],
67
67
"type": "object"
68
68
},
69
69
"channelEvent": {
70
70
"description": "Sent when a channel has been created, updated, or deleted.",
71
71
"properties": {
72
72
"data": {
73
73
"ref": "lex:social.colibri.sync.subscribeEvents#channelEventData",
74
74
"type": "ref"
75
75
},
76
76
"type": {
77
77
"const": "channel_event",
78
78
"type": "string"
79
79
}
80
80
},
81
81
"required": [
82
82
"type",
83
83
"data"
84
84
],
85
85
"type": "object"
86
86
},
87
87
"channelEventData": {
88
88
"properties": {
89
89
"community": {
90
90
"format": "at-uri",
91
91
"type": "string"
92
92
},
93
93
"description": {
94
94
"type": "string"
95
95
},
96
96
"event": {
97
97
"knownValues": [
98
98
"upsert",
99
99
"delete"
100
100
],
101
101
"type": "string"
102
102
},
103
103
"name": {
104
104
"type": "string"
105
105
},
106
106
"type": {
107
107
"type": "string"
108
108
},
109
109
"uri": {
110
110
"format": "at-uri",
111
111
"type": "string"
112
112
}
113
113
},
114
114
"required": [
115
115
"event",
116
116
"uri",
117
117
"community"
118
118
],
119
119
"type": "object"
120
120
},
121
121
"communityEvent": {
122
122
"description": "Sent when a community has been updated or deleted.",
123
123
"properties": {
124
124
"data": {
125
125
"ref": "lex:social.colibri.sync.subscribeEvents#communityEventData",
126
126
"type": "ref"
127
127
},
128
128
"type": {
129
129
"const": "community_event",
130
130
"type": "string"
131
131
}
132
132
},
133
133
"required": [
134
134
"type",
135
135
"data"
136
136
],
137
137
"type": "object"
138
138
},
139
139
"communityEventData": {
140
140
"properties": {
141
141
"categoryOrder": {
142
142
"items": {
143
143
"type": "string"
144
144
},
145
145
"type": "array"
146
146
},
147
147
"description": {
148
148
"type": "string"
149
149
},
150
150
"event": {
151
151
"knownValues": [
152
152
"upsert",
153
153
"delete"
154
154
],
155
155
"type": "string"
156
156
},
157
157
"name": {
158
158
"type": "string"
159
159
},
160
160
"picture": {
161
161
"type": "blob"
162
162
},
163
163
"uri": {
164
164
"format": "at-uri",
165
165
"type": "string"
166
166
}
167
167
},
168
168
"required": [
169
169
"event",
170
170
"uri"
171
171
],
172
172
"type": "object"
173
173
},
174
+
"humEnvelope": {
175
+
"description": "An off-protocol event relayed between AppViews. The authenticated sender (inter-service auth JWT: aud = receiving AppView did:web, lxm = social.colibri.sync.sendHum) is the origin of record; `origin` is echoed for relay/loop control and MUST match the JWT issuer. Only off-protocol event types are permitted — on-protocol events are never carried by a Hum and are derived from the firehose instead.",
176
+
"properties": {
177
+
"community": {
178
+
"description": "Community the event is scoped to. Receiver relays to local clients only if they are members of this community.",
179
+
"format": "at-uri",
180
+
"type": "string"
181
+
},
182
+
"event": {
183
+
"description": "Ephemeral event payload. Only off-protocol types are permitted.",
184
+
"refs": [
185
+
"lex:social.colibri.sync.subscribeEvents#userEvent",
186
+
"lex:social.colibri.sync.subscribeEvents#typingEvent",
187
+
"lex:social.colibri.sync.subscribeEvents#voicePresenceEvent"
188
+
],
189
+
"type": "union"
190
+
},
191
+
"id": {
192
+
"description": "Unique id for this Hum, used by receivers to dedup across relay paths.",
193
+
"maxLength": 64,
194
+
"type": "string"
195
+
},
196
+
"origin": {
197
+
"description": "DID of the AppView that first emitted this Hum.",
198
+
"format": "did",
199
+
"type": "string"
200
+
},
201
+
"subject": {
202
+
"description": "The user this event is about. Receiver MUST verify origin equals subject's declared presenceService before trusting or relaying.",
203
+
"format": "did",
204
+
"type": "string"
205
+
},
206
+
"ttl": {
207
+
"description": "Remaining relay hops. Decremented on each forward; a Hum at ttl 0 is delivered locally but never relayed.",
208
+
"maximum": 8,
209
+
"minimum": 0,
210
+
"type": "integer"
211
+
}
212
+
},
213
+
"required": [
214
+
"origin",
215
+
"id",
216
+
"ttl",
217
+
"subject",
218
+
"community",
219
+
"event"
220
+
],
221
+
"type": "object"
222
+
},
174
223
"main": {
175
224
"description": "Opens a WebSocket stream that transmits relevant events for the authenticated user.",
176
225
"errors": [
177
226
{
178
227
"name": "AuthRequired"
179
228
}
180
229
],
181
230
"message": {
182
231
"schema": {
183
232
"refs": [
184
233
"lex:social.colibri.sync.subscribeEvents#ack",
185
234
"lex:social.colibri.sync.subscribeEvents#communityEvent",
186
235
"lex:social.colibri.sync.subscribeEvents#memberEvent",
187
236
"lex:social.colibri.sync.subscribeEvents#categoryEvent",
188
237
"lex:social.colibri.sync.subscribeEvents#channelEvent",
189
238
"lex:social.colibri.sync.subscribeEvents#messageEvent",
190
239
"lex:social.colibri.sync.subscribeEvents#reactionEvent",
191
240
"lex:social.colibri.sync.subscribeEvents#userEvent",
192
-
"lex:social.colibri.sync.subscribeEvents#typingEvent"
241
+
"lex:social.colibri.sync.subscribeEvents#typingEvent",
242
+
"lex:social.colibri.sync.subscribeEvents#voicePresenceEvent"
193
243
],
194
244
"type": "union"
195
245
}
196
246
},
197
247
"type": "subscription"
198
248
},
199
249
"memberEvent": {
200
250
"description": "Sent when a member has joined or left a community.",
201
251
"properties": {
202
252
"data": {
203
253
"ref": "lex:social.colibri.sync.subscribeEvents#memberEventData",
204
254
"type": "ref"
205
255
},
206
256
"type": {
207
257
"const": "member_event",
208
258
"type": "string"
209
259
}
210
260
},
211
261
"required": [
212
262
"type",
213
263
"data"
214
264
],
215
265
"type": "object"
216
266
},
217
267
"memberEventData": {
218
268
"properties": {
219
269
"community": {
220
270
"format": "at-uri",
221
271
"type": "string"
222
272
},
223
273
"event": {
224
274
"knownValues": [
225
275
"join",
226
276
"leave"
227
277
],
228
278
"type": "string"
229
279
},
230
280
"membership": {
231
281
"format": "at-uri",
232
282
"type": "string"
233
283
}
234
284
},
235
285
"required": [
236
286
"event",
237
287
"community",
238
288
"membership"
239
289
],
240
290
"type": "object"
241
291
},
242
292
"messageEvent": {
243
293
"description": "Sent when a message has been sent, edited, or deleted.",
244
294
"properties": {
245
295
"data": {
246
296
"ref": "lex:social.colibri.sync.subscribeEvents#messageEventData",
247
297
"type": "ref"
248
298
},
249
299
"type": {
250
300
"const": "message_event",
251
301
"type": "string"
252
302
}
253
303
},
254
304
"required": [
255
305
"type",
256
306
"data"
257
307
],
258
308
"type": "object"
259
309
},
260
310
"messageEventData": {
261
311
"properties": {
262
312
"attachments": {
263
313
"items": {
264
314
"type": "blob"
265
315
},
266
316
"type": "array"
267
317
},
268
318
"channel": {
269
319
"format": "at-uri",
270
320
"type": "string"
271
321
},
272
322
"createdAt": {
273
323
"format": "datetime",
274
324
"type": "string"
275
325
},
276
326
"edited": {
277
327
"type": "boolean"
278
328
},
279
329
"event": {
280
330
"knownValues": [
281
331
"upsert",
282
332
"delete"
283
333
],
284
334
"type": "string"
285
335
},
286
336
"facets": {
287
337
"items": {
288
338
"ref": "lex:social.colibri.richtext.facet",
289
339
"type": "ref"
290
340
},
291
341
"type": "array"
292
342
},
293
343
"indexedAt": {
294
344
"format": "datetime",
295
345
"type": "string"
296
346
},
297
347
"parent": {
298
348
"format": "at-uri",
299
349
"type": "string"
300
350
},
301
351
"text": {
302
352
"type": "string"
303
353
},
304
354
"uri": {
305
355
"format": "at-uri",
306
356
"type": "string"
307
357
}
308
358
},
309
359
"required": [
310
360
"event",
311
361
"uri",
312
362
"channel"
313
363
],
314
364
"type": "object"
315
365
},
316
366
"reactionEvent": {
317
367
"description": "Sent when a reaction has been added to or removed from a message.",
318
368
"properties": {
319
369
"data": {
320
370
"ref": "lex:social.colibri.sync.subscribeEvents#reactionEventData",
321
371
"type": "ref"
322
372
},
323
373
"type": {
324
374
"const": "reaction_event",
325
375
"type": "string"
326
376
}
327
377
},
328
378
"required": [
329
379
"type",
330
380
"data"
331
381
],
332
382
"type": "object"
333
383
},
334
384
"reactionEventData": {
335
385
"properties": {
336
386
"channel": {
337
387
"format": "at-uri",
338
388
"type": "string"
339
389
},
340
390
"emoji": {
341
391
"type": "string"
342
392
},
343
393
"event": {
344
394
"knownValues": [
345
395
"added",
346
396
"removed"
347
397
],
348
398
"type": "string"
349
399
},
350
400
"target": {
351
401
"format": "at-uri",
352
402
"type": "string"
353
403
},
354
404
"uri": {
355
405
"format": "at-uri",
356
406
"type": "string"
357
407
}
358
408
},
359
409
"required": [
360
410
"event",
361
411
"uri",
362
412
"emoji",
363
413
"target",
364
414
"channel"
365
415
],
366
416
"type": "object"
367
417
},
368
418
"typingEvent": {
369
419
"description": "Sent when a user is typing in a channel the client is viewing.",
370
420
"properties": {
371
421
"data": {
372
422
"ref": "lex:social.colibri.sync.subscribeEvents#typingEventData",
373
423
"type": "ref"
374
424
},
375
425
"type": {
376
426
"const": "typing_event",
377
427
"type": "string"
378
428
}
379
429
},
380
430
"required": [
381
431
"type",
382
432
"data"
383
433
],
384
434
"type": "object"
385
435
},
386
436
"typingEventData": {
387
437
"properties": {
388
438
"channel": {
389
439
"format": "at-uri",
390
440
"type": "string"
391
441
},
392
442
"did": {
393
443
"format": "did",
394
444
"type": "string"
395
445
},
396
446
"event": {
397
447
"knownValues": [
398
448
"start",
399
449
"stop"
400
450
],
401
451
"type": "string"
402
452
}
403
453
},
404
454
"required": [
405
455
"event",
406
456
"channel",
407
457
"did"
408
458
],
409
459
"type": "object"
410
460
},
411
461
"userEvent": {
412
462
"description": "Sent when a known user has updated their profile or Colibri status.",
413
463
"properties": {
414
464
"data": {
415
465
"ref": "lex:social.colibri.sync.subscribeEvents#userEventData",
416
466
"type": "ref"
417
467
},
418
468
"type": {
419
469
"const": "user_event",
420
470
"type": "string"
421
471
}
422
472
},
423
473
"required": [
424
474
"type",
425
475
"data"
426
476
],
427
477
"type": "object"
428
478
},
429
479
"userEventData": {
430
480
"properties": {
431
481
"did": {
432
482
"format": "did",
433
483
"type": "string"
434
484
},
435
485
"profile": {
436
486
"ref": "lex:social.colibri.sync.subscribeEvents#userProfile",
437
487
"type": "ref"
438
488
},
439
489
"status": {
440
490
"ref": "lex:social.colibri.sync.subscribeEvents#userStatus",
441
491
"type": "ref"
442
492
}
443
493
},
444
494
"required": [
445
495
"did",
446
496
"profile"
447
497
],
448
498
"type": "object"
449
499
},
450
500
"userProfile": {
451
501
"properties": {
452
502
"avatar": {
453
503
"type": "blob"
454
504
},
455
505
"banner": {
456
506
"type": "blob"
457
507
},
458
508
"description": {
459
509
"type": "string"
460
510
},
461
511
"displayName": {
462
512
"type": "string"
463
513
},
464
514
"handle": {
465
515
"format": "handle",
466
516
"type": "string"
467
517
}
468
518
},
469
519
"required": [
470
520
"handle"
471
521
],
472
522
"type": "object"
473
523
},
474
524
"userStatus": {
475
525
"properties": {
476
526
"emoji": {
477
527
"type": "string"
478
528
},
479
529
"state": {
480
530
"knownValues": [
481
531
"online",
482
532
"away",
483
533
"dnd",
484
534
"offline"
485
535
],
486
536
"type": "string"
487
537
},
488
538
"text": {
489
539
"type": "string"
490
540
}
491
541
},
492
542
"required": [
493
543
"state",
494
544
"text"
495
545
],
496
546
"type": "object"
547
+
},
548
+
"voicePresenceEvent": {
549
+
"description": "Sent when a user joins or leaves a voice channel.",
550
+
"properties": {
551
+
"data": {
552
+
"ref": "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData",
553
+
"type": "ref"
554
+
},
555
+
"type": {
556
+
"const": "voice_presence_event",
557
+
"type": "string"
558
+
}
559
+
},
560
+
"required": [
561
+
"type",
562
+
"data"
563
+
],
564
+
"type": "object"
565
+
},
566
+
"voicePresenceEventData": {
567
+
"properties": {
568
+
"channel": {
569
+
"format": "at-uri",
570
+
"type": "string"
571
+
},
572
+
"did": {
573
+
"format": "did",
574
+
"type": "string"
575
+
},
576
+
"event": {
577
+
"knownValues": [
578
+
"join",
579
+
"leave"
580
+
],
581
+
"type": "string"
582
+
}
583
+
},
584
+
"required": [
585
+
"event",
586
+
"channel",
587
+
"did"
588
+
],
589
+
"type": "object"
497
590
}
498
591
},
499
592
"id": "social.colibri.sync.subscribeEvents",
500
593
"lexicon": 1,
501
594
"revision": 1
502
595
}