org.simocracy.gathering
Schema Diff
+14 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 8 non-breaking changes.
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.collectionUri" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.councilSims" }
- AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.councilSims:items" }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.collectionUri", kind: "prop", name: Some("collectionUri") }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.councilSims", kind: "prop", name: Some("councilSims") }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body.councilSims", tgt: "org.simocracy.gathering:body.councilSims:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.simocracy.gathering:body.councilSims:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.atproto.repo.strongRef" }AddedVertex { vertex_id: "org.simocracy.gathering:body.collectionUri" }AddedVertex { vertex_id: "org.simocracy.gathering:body.councilSims" }AddedVertex { vertex_id: "org.simocracy.gathering:body.councilSims:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.collectionUri", kind: "prop", name: Some("collectionUri") }
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.councilSims", kind: "prop", name: Some("councilSims") }
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body.councilSims", tgt: "org.simocracy.gathering:body.councilSims:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.simocracy.gathering:body.councilSims:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A governance or funding event that users can create and participate in.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"appRoute": {
10
10
"description": "Internal app route path (e.g. /senate, /ftc-sf) for built-in events",
11
11
"maxLength": 1000,
12
12
"type": "string"
13
13
},
14
14
"buildingImageUrl": {
15
15
"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).",
16
16
"maxLength": 5000,
17
17
"type": "string"
18
18
},
19
+
"collectionUri": {
20
+
"description": "AT-URI of an org.hypercerts.collection record for this gathering's proposals.",
21
+
"maxLength": 5000,
22
+
"type": "string"
23
+
},
24
+
"councilSims": {
25
+
"description": "Array of StrongRefs to sim records appointed to this gathering's council by the event creator.",
26
+
"items": {
27
+
"ref": "com.atproto.repo.strongRef",
28
+
"type": "ref"
29
+
},
30
+
"maxLength": 50,
31
+
"type": "array"
32
+
},
19
33
"createdAt": {
20
34
"description": "Timestamp when the record was created",
21
35
"format": "datetime",
22
36
"type": "string"
23
37
},
24
38
"dates": {
25
39
"description": "Human-readable date range (e.g. March 14-15, 2026)",
26
40
"maxGraphemes": 100,
27
41
"maxLength": 1000,
28
42
"type": "string"
29
43
},
30
44
"description": {
31
45
"description": "Full event description with details, agenda, etc.",
32
46
"maxGraphemes": 3000,
33
47
"maxLength": 30000,
34
48
"type": "string"
35
49
},
36
50
"descriptionFacets": {
37
51
"description": "Rich text facets for description",
38
52
"items": {
39
53
"ref": "app.bsky.richtext.facet",
40
54
"type": "ref"
41
55
},
42
56
"type": "array"
43
57
},
44
58
"gatheringType": {
45
59
"description": "Type of gathering",
46
60
"knownValues": [
47
61
"funding",
48
62
"governance",
49
63
"hybrid"
50
64
],
51
65
"type": "string"
52
66
},
53
67
"image": {
54
68
"accept": [
55
69
"image/png",
56
70
"image/jpeg",
57
71
"image/webp"
58
72
],
59
73
"description": "Cover image for the event (ATProto blob)",
60
74
"maxSize": 1000000,
61
75
"type": "blob"
62
76
},
63
77
"location": {
64
78
"description": "Physical or virtual location",
65
79
"maxGraphemes": 300,
66
80
"maxLength": 3000,
67
81
"type": "string"
68
82
},
69
83
"name": {
70
84
"description": "Display name of the event",
71
85
"maxGraphemes": 300,
72
86
"maxLength": 3000,
73
87
"type": "string"
74
88
},
75
89
"shortDescription": {
76
90
"description": "Brief summary for cards and previews",
77
91
"maxGraphemes": 300,
78
92
"maxLength": 3000,
79
93
"type": "string"
80
94
},
81
95
"shortDescriptionFacets": {
82
96
"description": "Rich text facets for shortDescription",
83
97
"items": {
84
98
"ref": "app.bsky.richtext.facet",
85
99
"type": "ref"
86
100
},
87
101
"type": "array"
88
102
},
89
103
"simSize": {
90
104
"description": "Size of sim avatars in this gathering's world. large=48px, normal=32px (senate default), small=20px (ftc-sf default).",
91
105
"knownValues": [
92
106
"large",
93
107
"normal",
94
108
"small"
95
109
],
96
110
"type": "string"
97
111
},
98
112
"status": {
99
113
"description": "Current status of the gathering",
100
114
"knownValues": [
101
115
"application",
102
116
"upcoming",
103
117
"active",
104
118
"completed"
105
119
],
106
120
"type": "string"
107
121
},
108
122
"url": {
109
123
"description": "External link (e.g. Luma registration page)",
110
124
"maxLength": 5000,
111
125
"type": "string"
112
126
}
113
127
},
114
128
"required": [
115
129
"name",
116
130
"gatheringType",
117
131
"status",
118
132
"createdAt"
119
133
],
120
134
"type": "object"
121
135
},
122
136
"type": "record"
123
137
}
124
138
},
125
139
"id": "org.simocracy.gathering",
126
140
"lexicon": 1
127
141
}