full diff

org.latha.gathering

nandi.uk +17 −124
From
bafyreigskbtu55tsmxhnuaz3ia67xkkwfn4pa5xhg6jzbfhtb4ytohind4 indexed 2026-04-25 22:34 UTC View this version
To
bafyreig4qh7fetnfs7zakoiddwfrylmsjhyav26nqy3p5urs7a447zerx4 indexed 2026-04-25 23:14 UTC View this version

Compatibility

breaking 36 breaking changes, 23 non-breaking changes.

Breaking changes (36)
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "org.latha.gathering#uri", src: "org.latha.gathering#uri", tgt: "org.latha.gathering#uri.uri", kind: "prop", name: Some("uri") }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#cancelled" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#hybrid" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#inperson" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location.address" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location.country" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location.locality" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location.name" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location.postalCode" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#location.region" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#mode" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#planned" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#postponed" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#rescheduled" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#scheduled" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#status" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#uri" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#uri.name" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#uri.uri" }
  • RemovedVertex RemovedVertex { vertex_id: "org.latha.gathering#virtual" }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.address", kind: "prop", name: Some("address") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.country", kind: "prop", name: Some("country") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.locality", kind: "prop", name: Some("locality") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.name", kind: "prop", name: Some("name") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.postalCode", kind: "prop", name: Some("postalCode") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.region", kind: "prop", name: Some("region") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering#uri", tgt: "org.latha.gathering#uri.name", kind: "prop", name: Some("name") }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering#location", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering:body.mode", tgt: "org.latha.gathering#mode", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering:body.status", tgt: "org.latha.gathering#status", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "org.latha.gathering:body.uris:items", tgt: "org.latha.gathering#uri", kind: "ref", name: None }
  • KindChanged KindChanged { vertex_id: "org.latha.gathering:body.locations:items", old_kind: "ref", new_kind: "union" }
  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.mode", sort: "ref", old_value: "org.latha.gathering#mode", new_value: "community.lexicon.calendar.event#mode" }
  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.status", sort: "ref", old_value: "org.latha.gathering#status", new_value: "community.lexicon.calendar.event#status" }
  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.uris:items", sort: "ref", old_value: "org.latha.gathering#uri", new_value: "community.lexicon.calendar.event#uri" }
Non-breaking changes (23)
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.calendar.event#mode" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.calendar.event#status" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.calendar.event#uri" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.location.address" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.location.fsq" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.location.geo" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.location.hthree" }
  • AddedVertex AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant2" }
  • AddedVertex AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant3" }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.locations:items:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.mode", tgt: "community.lexicon.calendar.event#mode", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.status", tgt: "community.lexicon.calendar.event#status", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.latha.gathering:body.uris:items", tgt: "community.lexicon.calendar.event#uri", kind: "ref", name: None }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.latha.gathering:body.locations:items", sort: "ref" }

Migration guidance

Removed

  • RemovedVertex { vertex_id: "org.latha.gathering#cancelled" }
  • RemovedVertex { vertex_id: "org.latha.gathering#hybrid" }
  • RemovedVertex { vertex_id: "org.latha.gathering#inperson" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location.address" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location.country" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location.locality" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location.name" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location.postalCode" }
  • RemovedVertex { vertex_id: "org.latha.gathering#location.region" }
  • RemovedVertex { vertex_id: "org.latha.gathering#mode" }
  • RemovedVertex { vertex_id: "org.latha.gathering#planned" }
  • RemovedVertex { vertex_id: "org.latha.gathering#postponed" }
  • RemovedVertex { vertex_id: "org.latha.gathering#rescheduled" }
  • RemovedVertex { vertex_id: "org.latha.gathering#scheduled" }
  • RemovedVertex { vertex_id: "org.latha.gathering#status" }
  • RemovedVertex { vertex_id: "org.latha.gathering#uri" }
  • RemovedVertex { vertex_id: "org.latha.gathering#uri.name" }
  • RemovedVertex { vertex_id: "org.latha.gathering#uri.uri" }
  • RemovedVertex { vertex_id: "org.latha.gathering#virtual" }

Added

  • AddedVertex { vertex_id: "community.lexicon.calendar.event#mode" }
  • AddedVertex { vertex_id: "community.lexicon.calendar.event#status" }
  • AddedVertex { vertex_id: "community.lexicon.calendar.event#uri" }
  • AddedVertex { vertex_id: "community.lexicon.location.address" }
  • AddedVertex { vertex_id: "community.lexicon.location.fsq" }
  • AddedVertex { vertex_id: "community.lexicon.location.geo" }
  • AddedVertex { vertex_id: "community.lexicon.location.hthree" }
  • AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant0" }
  • AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant1" }
  • AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant2" }
  • AddedVertex { vertex_id: "org.latha.gathering:body.locations:items:variant3" }

Constraint changes

  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.uris:items", sort: "ref", old_value: "org.latha.gathering#uri", new_value: "community.lexicon.calendar.event#uri" }
  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.mode", sort: "ref", old_value: "org.latha.gathering#mode", new_value: "community.lexicon.calendar.event#mode" }
  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.status", sort: "ref", old_value: "org.latha.gathering#status", new_value: "community.lexicon.calendar.event#status" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.latha.gathering:body.locations:items", sort: "ref" }

Notes

  • Breaking: RequiredEdgeRemoved { vertex_id: "org.latha.gathering#uri", src: "org.latha.gathering#uri", tgt: "org.latha.gathering#uri.uri", kind: "prop", name: Some("uri") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.address", kind: "prop", name: Some("address") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.country", kind: "prop", name: Some("country") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.locality", kind: "prop", name: Some("locality") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.name", kind: "prop", name: Some("name") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.postalCode", kind: "prop", name: Some("postalCode") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#location", tgt: "org.latha.gathering#location.region", kind: "prop", name: Some("region") }
  • Breaking: RemovedEdge { src: "org.latha.gathering#uri", tgt: "org.latha.gathering#uri.name", kind: "prop", name: Some("name") }
  • Breaking: RemovedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering#location", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "org.latha.gathering:body.mode", tgt: "org.latha.gathering#mode", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "org.latha.gathering:body.status", tgt: "org.latha.gathering#status", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "org.latha.gathering:body.uris:items", tgt: "org.latha.gathering#uri", kind: "ref", name: None }
  • Breaking: KindChanged { vertex_id: "org.latha.gathering:body.locations:items", old_kind: "ref", new_kind: "union" }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items", tgt: "org.latha.gathering:body.locations:items:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.locations:items:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.mode", tgt: "community.lexicon.calendar.event#mode", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.status", tgt: "community.lexicon.calendar.event#status", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.latha.gathering:body.uris:items", tgt: "community.lexicon.calendar.event#uri", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "actorRef": {
55 "description": "A lightweight reference to an ATProto identity.",
66 "properties": {
77 "did": {
88 "description": "ATProto DID.",
99 "format": "did",
1010 "type": "string"
1111 },
1212 "handle": {
1313 "description": "Current ATProto handle.",
1414 "type": "string"
1515 }
1616 },
1717 "required": [
1818 "did"
1919 ],
2020 "type": "object"
2121 },
2222 "attendee": {
23 "description": "A rich attendee record with role, projects, and metadata. Extends community.lexicon.calendar.rsvp with role, bio, projects, and tags.",
23 "description": "A rich attendee record extending community.lexicon.calendar.rsvp with role, bio, projects, and tags. While rsvp is a separate record linking a subject to a status, attendee embeds identity and metadata directly.",
2424 "properties": {
2525 "bio": {
2626 "description": "Short bio or tagline.",
2727 "maxGraphemes": 500,
2828 "maxLength": 5000,
2929 "type": "string"
3030 },
3131 "did": {
3232 "description": "ATProto DID.",
3333 "format": "did",
3434 "type": "string"
3535 },
3636 "displayName": {
3737 "description": "Display name.",
3838 "maxGraphemes": 100,
3939 "maxLength": 1000,
4040 "type": "string"
4141 },
4242 "handle": {
4343 "description": "ATProto handle.",
4444 "type": "string"
4545 },
4646 "notes": {
4747 "description": "Researcher notes about this attendee.",
4848 "maxGraphemes": 1000,
4949 "maxLength": 10000,
5050 "type": "string"
5151 },
5252 "projects": {
5353 "description": "Projects this person builds or maintains.",
5454 "items": {
5555 "ref": "org.latha.gathering#projectRef",
5656 "type": "ref"
5757 },
5858 "type": "array"
5959 },
6060 "role": {
6161 "description": "Role in the gathering: host, organizer, participant, speaker, volunteer.",
6262 "ref": "org.latha.gathering#role",
6363 "type": "ref"
6464 },
6565 "tags": {
6666 "description": "Interest tags (a11y, privacy, transit, category-theory, etc.).",
6767 "items": {
6868 "maxLength": 640,
6969 "type": "string"
7070 },
7171 "type": "array"
7272 }
7373 },
7474 "required": [
7575 "did"
7676 ],
7777 "type": "object"
7878 },
79 "cancelled": {
80 "description": "Gathering has been cancelled.",
81 "type": "token"
82 },
8379 "host": {
8480 "description": "Host of the gathering.",
8581 "type": "token"
8682 },
87 "hybrid": {
88 "description": "Hybrid (in-person and virtual) gathering.",
89 "type": "token"
90 },
91 "inperson": {
92 "description": "In-person gathering.",
93 "type": "token"
94 },
95 "location": {
96 "description": "A physical location.",
97 "properties": {
98 "address": {
99 "description": "Street address.",
100 "maxGraphemes": 200,
101 "maxLength": 2000,
102 "type": "string"
103 },
104 "country": {
105 "description": "ISO 3166-1 alpha-2 country code.",
106 "maxLength": 2,
107 "type": "string"
108 },
109 "locality": {
110 "description": "City or locality.",
111 "maxGraphemes": 50,
112 "maxLength": 500,
113 "type": "string"
114 },
115 "name": {
116 "description": "Venue name.",
117 "maxGraphemes": 100,
118 "maxLength": 1000,
119 "type": "string"
120 },
121 "postalCode": {
122 "description": "Postal code.",
123 "maxLength": 20,
124 "type": "string"
125 },
126 "region": {
127 "description": "State or province.",
128 "maxGraphemes": 50,
129 "maxLength": 500,
130 "type": "string"
131 }
132 },
133 "type": "object"
134 },
13583 "main": {
13684 "description": "A community gathering or meetup with structured attendee data and extensible thematic sections.",
13785 "key": "tid",
13886 "record": {
13987 "properties": {
14088 "attendees": {
14189 "description": "People who attended the gathering, with roles and metadata.",
14290 "items": {
14391 "ref": "org.latha.gathering#attendee",
14492 "type": "ref"
14593 },
14694 "type": "array"
14795 },
14896 "createdAt": {
14997 "description": "Client-declared timestamp when this record was created.",
15098 "format": "datetime",
15199 "type": "string"
152100 },
153101 "description": {
154102 "description": "Brief description of the gathering.",
155103 "maxGraphemes": 2000,
156104 "maxLength": 20000,
157105 "type": "string"
158106 },
159107 "endsAt": {
160108 "description": "Client-declared timestamp when the gathering ends.",
161109 "format": "datetime",
162110 "type": "string"
163111 },
164112 "format": {
165113 "description": "Gathering format (e.g., unconference, workshop, hackathon, panel).",
166114 "maxGraphemes": 100,
167115 "maxLength": 1000,
168116 "type": "string"
169117 },
170118 "host": {
171119 "description": "The primary host or organizing identity.",
172120 "ref": "org.latha.gathering#actorRef",
173121 "type": "ref"
174122 },
175123 "locations": {
176 "description": "Where the gathering takes place.",
124 "description": "Where the gathering takes place. Reuses community.lexicon.location union (address, geo, fsq, hthree).",
177125 "items": {
178 "ref": "org.latha.gathering#location",
179 "type": "ref"
126 "refs": [
127 "community.lexicon.location.address",
128 "community.lexicon.location.geo",
129 "community.lexicon.location.fsq",
130 "community.lexicon.location.hthree"
131 ],
132 "type": "union"
180133 },
181134 "type": "array"
182135 },
183136 "mode": {
184 "description": "The attendance mode of the gathering.",
185 "ref": "org.latha.gathering#mode",
137 "description": "The attendance mode of the gathering. Reuses community.lexicon.calendar.event#mode.",
138 "ref": "community.lexicon.calendar.event#mode",
186139 "type": "ref"
187140 },
188141 "name": {
189142 "description": "Name of the gathering.",
190143 "maxGraphemes": 200,
191144 "maxLength": 2000,
192145 "type": "string"
193146 },
194147 "sections": {
195148 "description": "Modular sections for grouping and analyzing the gathering. Each entry must specify a $type. Built-in: thematicCluster. Other lexicons may add more.",
196149 "items": {
197150 "closed": false,
198151 "refs": [
199152 "org.latha.gathering#thematicCluster"
200153 ],
201154 "type": "union"
202155 },
203156 "type": "array"
204157 },
205158 "startsAt": {
206159 "description": "Client-declared timestamp when the gathering starts.",
207160 "format": "datetime",
208161 "type": "string"
209162 },
210163 "status": {
211 "description": "The status of the gathering.",
212 "ref": "org.latha.gathering#status",
164 "description": "The status of the gathering. Reuses community.lexicon.calendar.event#status.",
165 "ref": "community.lexicon.calendar.event#status",
213166 "type": "ref"
214167 },
215168 "uris": {
216 "description": "Platform links (OpenMeet, Meetup.com, etc.).",
169 "description": "Platform links (OpenMeet, Meetup.com, etc.). Reuses community.lexicon.calendar.event#uri.",
217170 "items": {
218 "ref": "org.latha.gathering#uri",
171 "ref": "community.lexicon.calendar.event#uri",
219172 "type": "ref"
220173 },
221174 "type": "array"
222175 }
223176 },
224177 "required": [
225178 "name",
226179 "createdAt"
227180 ],
228181 "type": "object"
229182 },
230183 "type": "record"
231184 },
232 "mode": {
233 "description": "Attendance mode of the gathering.",
234 "knownValues": [
235 "org.latha.gathering#inperson",
236 "org.latha.gathering#hybrid",
237 "org.latha.gathering#virtual"
238 ],
239 "type": "string"
240 },
241185 "organizer": {
242186 "description": "Organizer of the gathering.",
243187 "type": "token"
244188 },
245189 "participant": {
246190 "description": "Participant in the gathering.",
247191 "type": "token"
248192 },
249 "planned": {
250 "description": "Gathering is planned.",
251 "type": "token"
252 },
253 "postponed": {
254 "description": "Gathering has been postponed.",
255 "type": "token"
256 },
257193 "projectRef": {
258194 "description": "A reference to a project or tool.",
259195 "properties": {
260196 "name": {
261197 "description": "Project name.",
262198 "maxGraphemes": 100,
263199 "maxLength": 1000,
264200 "type": "string"
265201 },
266202 "uri": {
267203 "description": "Link to the project.",
268204 "format": "uri",
269205 "type": "string"
270206 }
271207 },
272208 "required": [
273209 "name"
274210 ],
275211 "type": "object"
276 },
277 "rescheduled": {
278 "description": "Gathering has been rescheduled.",
279 "type": "token"
280212 },
281213 "role": {
282 "description": "Role of an attendee in the gathering.",
214 "description": "Role of an attendee in the gathering. No existing lexicon defines attendee roles; community.lexicon.calendar.rsvp only has going/interested/notgoing.",
283215 "knownValues": [
284216 "org.latha.gathering#host",
285217 "org.latha.gathering#organizer",
286218 "org.latha.gathering#participant",
287219 "org.latha.gathering#speaker",
288220 "org.latha.gathering#volunteer"
289221 ],
290222 "type": "string"
291223 },
292 "scheduled": {
293 "description": "Gathering is scheduled.",
294 "type": "token"
295 },
296224 "speaker": {
297225 "description": "Speaker at the gathering.",
298226 "type": "token"
299227 },
300 "status": {
301 "description": "Status of the gathering.",
302 "knownValues": [
303 "org.latha.gathering#planned",
304 "org.latha.gathering#scheduled",
305 "org.latha.gathering#rescheduled",
306 "org.latha.gathering#postponed",
307 "org.latha.gathering#cancelled"
308 ],
309 "type": "string"
310 },
311228 "thematicCluster": {
312229 "description": "A group of attendees united by a shared theme, practice, or infrastructure role. Each cluster names a social or technical layer present at the gathering.",
313230 "properties": {
314231 "description": {
315232 "description": "What brings this group together or what they provide.",
316233 "maxGraphemes": 1000,
317234 "maxLength": 10000,
318235 "type": "string"
319236 },
320237 "members": {
321238 "description": "People in this cluster.",
322239 "items": {
323240 "ref": "org.latha.gathering#actorRef",
324241 "type": "ref"
325242 },
326243 "type": "array"
327244 },
328245 "name": {
329246 "description": "Cluster name (e.g., Organizer Core, Protocol Infrastructure, Technologist-Philosophers).",
330247 "maxGraphemes": 100,
331248 "maxLength": 1000,
332249 "type": "string"
333250 }
334251 },
335252 "required": [
336253 "name"
337254 ],
338255 "type": "object"
339256 },
340 "uri": {
341 "description": "A named link.",
342 "properties": {
343 "name": {
344 "description": "Label for the URI.",
345 "maxGraphemes": 50,
346 "maxLength": 500,
347 "type": "string"
348 },
349 "uri": {
350 "description": "The URI.",
351 "format": "uri",
352 "type": "string"
353 }
354 },
355 "required": [
356 "uri"
357 ],
358 "type": "object"
359 },
360 "virtual": {
361 "description": "Virtual gathering.",
362 "type": "token"
363 },
364257 "volunteer": {
365258 "description": "Volunteer at the gathering.",
366259 "type": "token"
367260 }
368261 },
369 "description": "A community gathering or meetup record with attendees and extensible thematic sections. Covers event metadata, rich attendee data, and modular grouping of people by theme or infrastructure role. Schema: https://gathering.latha.org/#at://did:plc:ngokl2gnmpbvuvrfckja3g7p/org.latha.gathering/3mkdvt6ljja2e",
262 "description": "A community gathering or meetup with structured attendee data and extensible thematic sections. Reuses community.lexicon.calendar.event for mode/status/uris and community.lexicon.location for locations. Adds rich attendee records (role, bio, projects, tags) and thematic clustering.",
370263 "id": "org.latha.gathering",
371264 "lexicon": 1
372265}

Compare other versions