org.simocracy.gathering
Schema Diff
+31 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 8 non-breaking changes.
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.logo" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.proposalScope" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.updatedAt" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.visibility" }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.logo", kind: "prop", name: Some("logo") }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.proposalScope", kind: "prop", name: Some("proposalScope") }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.visibility", kind: "prop", name: Some("visibility") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "org.simocracy.gathering:body.logo" }AddedVertex { vertex_id: "org.simocracy.gathering:body.proposalScope" }AddedVertex { vertex_id: "org.simocracy.gathering:body.updatedAt" }AddedVertex { vertex_id: "org.simocracy.gathering:body.visibility" }
Additional Notes
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.logo", kind: "prop", name: Some("logo") }
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.proposalScope", kind: "prop", name: Some("proposalScope") }
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.visibility", kind: "prop", name: Some("visibility") }
1
1
{
2
2
"id": "org.simocracy.gathering",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"name",
11
11
"gatheringType",
12
12
"status",
13
13
"createdAt"
14
14
],
15
15
"properties": {
16
16
"url": {
17
17
"type": "string",
18
18
"maxLength": 5000,
19
19
"description": "External link (e.g. Luma registration page)"
20
20
},
21
+
"logo": {
22
+
"type": "blob",
23
+
"accept": [
24
+
"image/png",
25
+
"image/jpeg",
26
+
"image/webp"
27
+
],
28
+
"maxSize": 1000000,
29
+
"description": "Square community logo displayed in navigation rails, pickers, and community cards."
30
+
},
21
31
"name": {
22
32
"type": "string",
23
33
"maxLength": 3000,
24
34
"description": "Display name of the event",
25
35
"maxGraphemes": 300
26
36
},
27
37
"dates": {
28
38
"type": "string",
29
39
"maxLength": 1000,
30
40
"description": "Human-readable date range (e.g. March 14-15, 2026)",
31
41
"maxGraphemes": 100
32
42
},
33
43
"image": {
34
44
"type": "blob",
35
45
"accept": [
36
46
"image/png",
37
47
"image/jpeg",
38
48
"image/webp"
39
49
],
40
50
"maxSize": 1000000,
41
51
"description": "Cover image for the event (ATProto blob)"
42
52
},
43
53
"status": {
44
54
"type": "string",
45
55
"description": "Current status of the gathering",
46
56
"knownValues": [
47
57
"application",
48
58
"upcoming",
49
59
"active",
50
60
"completed"
51
61
]
52
62
},
53
63
"context": {
54
64
"type": "string",
55
65
"description": "Background / briefing material for sims participating in this event. Shown to AI sims as event context so they can act efficiently (e.g. prior decisions, mission, constraints, data, links). Unbounded — length constrained only by ATProto's per-record size limit."
56
66
},
57
67
"simSize": {
58
68
"type": "string",
59
69
"description": "Size of sim avatars in this gathering's world. large=48px, normal=32px (senate default), small=20px (ftc-sf default).",
60
70
"knownValues": [
61
71
"large",
62
72
"normal",
63
73
"small"
64
74
]
65
75
},
66
76
"appRoute": {
67
77
"type": "string",
68
78
"maxLength": 1000,
69
79
"description": "Internal app route path (e.g. /senate, /ftc-sf) for built-in events"
70
80
},
71
81
"location": {
72
82
"type": "string",
73
83
"maxLength": 3000,
74
84
"description": "Physical or virtual location",
75
85
"maxGraphemes": 300
76
86
},
77
87
"simScope": {
78
88
"type": "string",
79
89
"description": "Which sims walk around in this gathering's world. council=only appointed council sims (default), all=every sim in Simocracy.",
80
90
"knownValues": [
81
91
"council",
82
92
"all"
83
93
]
84
94
},
85
95
"createdAt": {
86
96
"type": "string",
87
97
"format": "datetime",
88
98
"description": "Timestamp when the record was created"
89
99
},
100
+
"updatedAt": {
101
+
"type": "string",
102
+
"format": "datetime",
103
+
"description": "Timestamp when the gathering was last updated"
104
+
},
105
+
"visibility": {
106
+
"type": "string",
107
+
"description": "Whether this gathering is listed in public overviews. public=shown in the events gallery, profile pages, etc. (default). private=hidden from every overview list; only the creator sees it in their own listings, but anyone with the direct AT-URI / DID-PLC link or canonical slug URL can still load the detail page.",
108
+
"knownValues": [
109
+
"public",
110
+
"private"
111
+
]
112
+
},
90
113
"councilSims": {
91
114
"type": "array",
92
115
"items": {
93
116
"ref": "com.atproto.repo.strongRef",
94
117
"type": "ref"
95
118
},
96
119
"maxLength": 50,
97
120
"description": "Array of StrongRefs to sim records appointed to this gathering's council by the event creator."
98
121
},
99
122
"description": {
100
123
"type": "string",
101
124
"maxLength": 30000,
102
125
"description": "Full event description with details, agenda, etc.",
103
126
"maxGraphemes": 3000
104
127
},
105
128
"treasuryUsd": {
106
129
"type": "integer",
107
130
"minimum": 0,
108
131
"description": "Optional agentic treasury amount in USD that the council governs."
109
132
},
110
133
"collectionUri": {
111
134
"type": "string",
112
135
"maxLength": 5000,
113
136
"description": "AT-URI of an org.hypercerts.collection record for this gathering's proposals."
114
137
},
115
138
"contextFacets": {
116
139
"type": "array",
117
140
"items": {
118
141
"ref": "app.bsky.richtext.facet",
119
142
"type": "ref"
120
143
},
121
144
"description": "Rich text facets for context"
122
145
},
123
146
"gatheringType": {
124
147
"type": "string",
125
148
"description": "Type of gathering",
126
149
"knownValues": [
127
150
"funding",
128
151
"governance",
129
152
"hybrid"
130
153
]
131
154
},
155
+
"proposalScope": {
156
+
"type": "string",
157
+
"description": "Who can submit proposals to this gathering. council=only users who own at least one sim on the appointed council (event creator always allowed), all=anyone signed in (default).",
158
+
"knownValues": [
159
+
"council",
160
+
"all"
161
+
]
162
+
},
132
163
"buildingImageUrl": {
133
164
"type": "string",
134
165
"maxLength": 5000,
135
166
"description": "URL of the building/venue image for this gathering. Can be an absolute URL or a path relative to the app (e.g. /senate.png, /frontiertower.webp)."
136
167
},
137
168
"shortDescription": {
138
169
"type": "string",
139
170
"maxLength": 3000,
140
171
"description": "Brief summary for cards and previews",
141
172
"maxGraphemes": 300
142
173
},
143
174
"descriptionFacets": {
144
175
"type": "array",
145
176
"items": {
146
177
"ref": "app.bsky.richtext.facet",
147
178
"type": "ref"
148
179
},
149
180
"description": "Rich text facets for description"
150
181
},
151
182
"allocationMechanism": {
152
183
"type": "string",
153
184
"description": "The mechanism used to allocate the treasury among proposals.",
154
185
"knownValues": [
155
186
"quadratic-funding",
156
187
"s-process",
157
188
"condorcet"
158
189
]
159
190
},
160
191
"shortDescriptionFacets": {
161
192
"type": "array",
162
193
"items": {
163
194
"ref": "app.bsky.richtext.facet",
164
195
"type": "ref"
165
196
},
166
197
"description": "Rich text facets for shortDescription"
167
198
},
168
199
"suggestedInterviewTemplates": {
169
200
"type": "array",
170
201
"items": {
171
202
"ref": "com.atproto.repo.strongRef",
172
203
"type": "ref"
173
204
},
174
205
"maxLength": 5,
175
206
"description": "Optional: interview templates this gathering suggests to prospective council members."
176
207
}
177
208
}
178
209
},
179
210
"description": "A governance or funding event that users can create and participate in."
180
211
}
181
212
},
182
213
"$type": "com.atproto.lexicon.schema",
183
214
"lexicon": 1
184
215
}