org.latha.gathering

nandi.uk

Schema Diff

+17 -124

From

CID
bafyreigskbtu55t...
Indexed At
2026-04-25 22:34 UTC
View this version

To

CID
bafyreig4qh7fetn...
Indexed At
2026-04-25 23:14 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

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.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.status", sort: "ref", old_value: "org.latha.gathering#status", new_value: "community.lexicon.calendar.event#status" }
  • ConstraintTightened ConstraintTightened { vertex_id: "org.latha.gathering:body.mode", sort: "ref", old_value: "org.latha.gathering#mode", new_value: "community.lexicon.calendar.event#mode" }
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 Elements

  • 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 Elements

  • 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.status", sort: "ref", old_value: "org.latha.gathering#status", new_value: "community.lexicon.calendar.event#status" }
  • 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.uris:items", sort: "ref", old_value: "org.latha.gathering#uri", new_value: "community.lexicon.calendar.event#uri" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.latha.gathering:body.locations:items", sort: "ref" }

Additional 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 }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "actorRef": {
5 5
      "description": "A lightweight reference to an ATProto identity.",
6 6
      "properties": {
7 7
        "did": {
8 8
          "description": "ATProto DID.",
9 9
          "format": "did",
10 10
          "type": "string"
11 11
        },
12 12
        "handle": {
13 13
          "description": "Current ATProto handle.",
14 14
          "type": "string"
15 15
        }
16 16
      },
17 17
      "required": [
18 18
        "did"
19 19
      ],
20 20
      "type": "object"
21 21
    },
22 22
    "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.",
24 24
      "properties": {
25 25
        "bio": {
26 26
          "description": "Short bio or tagline.",
27 27
          "maxGraphemes": 500,
28 28
          "maxLength": 5000,
29 29
          "type": "string"
30 30
        },
31 31
        "did": {
32 32
          "description": "ATProto DID.",
33 33
          "format": "did",
34 34
          "type": "string"
35 35
        },
36 36
        "displayName": {
37 37
          "description": "Display name.",
38 38
          "maxGraphemes": 100,
39 39
          "maxLength": 1000,
40 40
          "type": "string"
41 41
        },
42 42
        "handle": {
43 43
          "description": "ATProto handle.",
44 44
          "type": "string"
45 45
        },
46 46
        "notes": {
47 47
          "description": "Researcher notes about this attendee.",
48 48
          "maxGraphemes": 1000,
49 49
          "maxLength": 10000,
50 50
          "type": "string"
51 51
        },
52 52
        "projects": {
53 53
          "description": "Projects this person builds or maintains.",
54 54
          "items": {
55 55
            "ref": "org.latha.gathering#projectRef",
56 56
            "type": "ref"
57 57
          },
58 58
          "type": "array"
59 59
        },
60 60
        "role": {
61 61
          "description": "Role in the gathering: host, organizer, participant, speaker, volunteer.",
62 62
          "ref": "org.latha.gathering#role",
63 63
          "type": "ref"
64 64
        },
65 65
        "tags": {
66 66
          "description": "Interest tags (a11y, privacy, transit, category-theory, etc.).",
67 67
          "items": {
68 68
            "maxLength": 640,
69 69
            "type": "string"
70 70
          },
71 71
          "type": "array"
72 72
        }
73 73
      },
74 74
      "required": [
75 75
        "did"
76 76
      ],
77 77
      "type": "object"
78 78
    },
79 -
    "cancelled": {
80 -
      "description": "Gathering has been cancelled.",
81 -
      "type": "token"
82 -
    },
83 79
    "host": {
84 80
      "description": "Host of the gathering.",
85 81
      "type": "token"
86 82
    },
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 -
    },
135 83
    "main": {
136 84
      "description": "A community gathering or meetup with structured attendee data and extensible thematic sections.",
137 85
      "key": "tid",
138 86
      "record": {
139 87
        "properties": {
140 88
          "attendees": {
141 89
            "description": "People who attended the gathering, with roles and metadata.",
142 90
            "items": {
143 91
              "ref": "org.latha.gathering#attendee",
144 92
              "type": "ref"
145 93
            },
146 94
            "type": "array"
147 95
          },
148 96
          "createdAt": {
149 97
            "description": "Client-declared timestamp when this record was created.",
150 98
            "format": "datetime",
151 99
            "type": "string"
152 100
          },
153 101
          "description": {
154 102
            "description": "Brief description of the gathering.",
155 103
            "maxGraphemes": 2000,
156 104
            "maxLength": 20000,
157 105
            "type": "string"
158 106
          },
159 107
          "endsAt": {
160 108
            "description": "Client-declared timestamp when the gathering ends.",
161 109
            "format": "datetime",
162 110
            "type": "string"
163 111
          },
164 112
          "format": {
165 113
            "description": "Gathering format (e.g., unconference, workshop, hackathon, panel).",
166 114
            "maxGraphemes": 100,
167 115
            "maxLength": 1000,
168 116
            "type": "string"
169 117
          },
170 118
          "host": {
171 119
            "description": "The primary host or organizing identity.",
172 120
            "ref": "org.latha.gathering#actorRef",
173 121
            "type": "ref"
174 122
          },
175 123
          "locations": {
176 -
            "description": "Where the gathering takes place.",
124 +
            "description": "Where the gathering takes place. Reuses community.lexicon.location union (address, geo, fsq, hthree).",
177 125
            "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"
180 133
            },
181 134
            "type": "array"
182 135
          },
183 136
          "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",
186 139
            "type": "ref"
187 140
          },
188 141
          "name": {
189 142
            "description": "Name of the gathering.",
190 143
            "maxGraphemes": 200,
191 144
            "maxLength": 2000,
192 145
            "type": "string"
193 146
          },
194 147
          "sections": {
195 148
            "description": "Modular sections for grouping and analyzing the gathering. Each entry must specify a $type. Built-in: thematicCluster. Other lexicons may add more.",
196 149
            "items": {
197 150
              "closed": false,
198 151
              "refs": [
199 152
                "org.latha.gathering#thematicCluster"
200 153
              ],
201 154
              "type": "union"
202 155
            },
203 156
            "type": "array"
204 157
          },
205 158
          "startsAt": {
206 159
            "description": "Client-declared timestamp when the gathering starts.",
207 160
            "format": "datetime",
208 161
            "type": "string"
209 162
          },
210 163
          "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",
213 166
            "type": "ref"
214 167
          },
215 168
          "uris": {
216 -
            "description": "Platform links (OpenMeet, Meetup.com, etc.).",
169 +
            "description": "Platform links (OpenMeet, Meetup.com, etc.). Reuses community.lexicon.calendar.event#uri.",
217 170
            "items": {
218 -
              "ref": "org.latha.gathering#uri",
171 +
              "ref": "community.lexicon.calendar.event#uri",
219 172
              "type": "ref"
220 173
            },
221 174
            "type": "array"
222 175
          }
223 176
        },
224 177
        "required": [
225 178
          "name",
226 179
          "createdAt"
227 180
        ],
228 181
        "type": "object"
229 182
      },
230 183
      "type": "record"
231 184
    },
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 -
    },
241 185
    "organizer": {
242 186
      "description": "Organizer of the gathering.",
243 187
      "type": "token"
244 188
    },
245 189
    "participant": {
246 190
      "description": "Participant in the gathering.",
247 191
      "type": "token"
248 192
    },
249 -
    "planned": {
250 -
      "description": "Gathering is planned.",
251 -
      "type": "token"
252 -
    },
253 -
    "postponed": {
254 -
      "description": "Gathering has been postponed.",
255 -
      "type": "token"
256 -
    },
257 193
    "projectRef": {
258 194
      "description": "A reference to a project or tool.",
259 195
      "properties": {
260 196
        "name": {
261 197
          "description": "Project name.",
262 198
          "maxGraphemes": 100,
263 199
          "maxLength": 1000,
264 200
          "type": "string"
265 201
        },
266 202
        "uri": {
267 203
          "description": "Link to the project.",
268 204
          "format": "uri",
269 205
          "type": "string"
270 206
        }
271 207
      },
272 208
      "required": [
273 209
        "name"
274 210
      ],
275 211
      "type": "object"
276 -
    },
277 -
    "rescheduled": {
278 -
      "description": "Gathering has been rescheduled.",
279 -
      "type": "token"
280 212
    },
281 213
    "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.",
283 215
      "knownValues": [
284 216
        "org.latha.gathering#host",
285 217
        "org.latha.gathering#organizer",
286 218
        "org.latha.gathering#participant",
287 219
        "org.latha.gathering#speaker",
288 220
        "org.latha.gathering#volunteer"
289 221
      ],
290 222
      "type": "string"
291 223
    },
292 -
    "scheduled": {
293 -
      "description": "Gathering is scheduled.",
294 -
      "type": "token"
295 -
    },
296 224
    "speaker": {
297 225
      "description": "Speaker at the gathering.",
298 226
      "type": "token"
299 227
    },
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 -
    },
311 228
    "thematicCluster": {
312 229
      "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.",
313 230
      "properties": {
314 231
        "description": {
315 232
          "description": "What brings this group together or what they provide.",
316 233
          "maxGraphemes": 1000,
317 234
          "maxLength": 10000,
318 235
          "type": "string"
319 236
        },
320 237
        "members": {
321 238
          "description": "People in this cluster.",
322 239
          "items": {
323 240
            "ref": "org.latha.gathering#actorRef",
324 241
            "type": "ref"
325 242
          },
326 243
          "type": "array"
327 244
        },
328 245
        "name": {
329 246
          "description": "Cluster name (e.g., Organizer Core, Protocol Infrastructure, Technologist-Philosophers).",
330 247
          "maxGraphemes": 100,
331 248
          "maxLength": 1000,
332 249
          "type": "string"
333 250
        }
334 251
      },
335 252
      "required": [
336 253
        "name"
337 254
      ],
338 255
      "type": "object"
339 256
    },
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 -
    },
364 257
    "volunteer": {
365 258
      "description": "Volunteer at the gathering.",
366 259
      "type": "token"
367 260
    }
368 261
  },
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.",
370 263
  "id": "org.latha.gathering",
371 264
  "lexicon": 1
372 265
}

Compare Other Versions

Lexicon Garden

@