org.simocracy.gathering

gainforest.earth

Schema Diff

+28 -0

From

CID
bafyreifec6w43kr...
Indexed At
2026-04-02 17:01 UTC
View this version

To

CID
bafyreib2yuer6ci...
Indexed At
2026-04-07 00:29 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 10 non-breaking changes.

Breaking Changes (2)
  • ConstraintAdded ConstraintAdded { vertex_id: "org.simocracy.gathering:body.collectionUri", sort: "maxLength", value: "5000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "org.simocracy.gathering:body.treasuryUsd", sort: "minimum", value: "0" }
Non-Breaking Changes (10)
  • AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.allocationMechanism" }
  • 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" }
  • AddedVertex AddedVertex { vertex_id: "org.simocracy.gathering:body.treasuryUsd" }
  • AddedEdge AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.allocationMechanism", kind: "prop", name: Some("allocationMechanism") }
  • 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", tgt: "org.simocracy.gathering:body.treasuryUsd", kind: "prop", name: Some("treasuryUsd") }
  • AddedEdge AddedEdge { src: "org.simocracy.gathering:body.councilSims", tgt: "org.simocracy.gathering:body.councilSims:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "org.simocracy.gathering:body.allocationMechanism" }
  • 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" }
  • AddedVertex { vertex_id: "org.simocracy.gathering:body.treasuryUsd" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "org.simocracy.gathering:body.treasuryUsd", sort: "minimum", value: "0" }
  • ConstraintAdded ConstraintAdded { vertex_id: "org.simocracy.gathering:body.collectionUri", sort: "maxLength", value: "5000" }

Additional Notes

  • Non-breaking: AddedEdge { src: "org.simocracy.gathering:body", tgt: "org.simocracy.gathering:body.allocationMechanism", kind: "prop", name: Some("allocationMechanism") }
  • 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", tgt: "org.simocracy.gathering:body.treasuryUsd", kind: "prop", name: Some("treasuryUsd") }
  • Non-breaking: AddedEdge { src: "org.simocracy.gathering:body.councilSims", tgt: "org.simocracy.gathering:body.councilSims:items", kind: "items", name: None }
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 21
          "name": {
22 22
            "type": "string",
23 23
            "maxLength": 3000,
24 24
            "description": "Display name of the event",
25 25
            "maxGraphemes": 300
26 26
          },
27 27
          "dates": {
28 28
            "type": "string",
29 29
            "maxLength": 1000,
30 30
            "description": "Human-readable date range (e.g. March 14-15, 2026)",
31 31
            "maxGraphemes": 100
32 32
          },
33 33
          "image": {
34 34
            "type": "blob",
35 35
            "accept": [
36 36
              "image/png",
37 37
              "image/jpeg",
38 38
              "image/webp"
39 39
            ],
40 40
            "maxSize": 1000000,
41 41
            "description": "Cover image for the event (ATProto blob)"
42 42
          },
43 43
          "status": {
44 44
            "type": "string",
45 45
            "description": "Current status of the gathering",
46 46
            "knownValues": [
47 47
              "application",
48 48
              "upcoming",
49 49
              "active",
50 50
              "completed"
51 51
            ]
52 52
          },
53 53
          "simSize": {
54 54
            "type": "string",
55 55
            "description": "Size of sim avatars in this gathering's world. large=48px, normal=32px (senate default), small=20px (ftc-sf default).",
56 56
            "knownValues": [
57 57
              "large",
58 58
              "normal",
59 59
              "small"
60 60
            ]
61 61
          },
62 62
          "appRoute": {
63 63
            "type": "string",
64 64
            "maxLength": 1000,
65 65
            "description": "Internal app route path (e.g. /senate, /ftc-sf) for built-in events"
66 66
          },
67 67
          "location": {
68 68
            "type": "string",
69 69
            "maxLength": 3000,
70 70
            "description": "Physical or virtual location",
71 71
            "maxGraphemes": 300
72 72
          },
73 73
          "createdAt": {
74 74
            "type": "string",
75 75
            "format": "datetime",
76 76
            "description": "Timestamp when the record was created"
77 77
          },
78 +
          "councilSims": {
79 +
            "type": "array",
80 +
            "items": {
81 +
              "ref": "com.atproto.repo.strongRef",
82 +
              "type": "ref"
83 +
            },
84 +
            "maxLength": 50,
85 +
            "description": "Array of StrongRefs to sim records appointed to this gathering's council by the event creator."
86 +
          },
78 87
          "description": {
79 88
            "type": "string",
80 89
            "maxLength": 30000,
81 90
            "description": "Full event description with details, agenda, etc.",
82 91
            "maxGraphemes": 3000
83 92
          },
93 +
          "treasuryUsd": {
94 +
            "type": "integer",
95 +
            "minimum": 0,
96 +
            "description": "Optional agentic treasury amount in USD that the council governs."
97 +
          },
98 +
          "collectionUri": {
99 +
            "type": "string",
100 +
            "maxLength": 5000,
101 +
            "description": "AT-URI of an org.hypercerts.collection record for this gathering's proposals."
102 +
          },
84 103
          "gatheringType": {
85 104
            "type": "string",
86 105
            "description": "Type of gathering",
87 106
            "knownValues": [
88 107
              "funding",
89 108
              "governance",
90 109
              "hybrid"
91 110
            ]
92 111
          },
93 112
          "buildingImageUrl": {
94 113
            "type": "string",
95 114
            "maxLength": 5000,
96 115
            "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)."
97 116
          },
98 117
          "shortDescription": {
99 118
            "type": "string",
100 119
            "maxLength": 3000,
101 120
            "description": "Brief summary for cards and previews",
102 121
            "maxGraphemes": 300
103 122
          },
104 123
          "descriptionFacets": {
105 124
            "type": "array",
106 125
            "items": {
107 126
              "ref": "app.bsky.richtext.facet",
108 127
              "type": "ref"
109 128
            },
110 129
            "description": "Rich text facets for description"
111 130
          },
131 +
          "allocationMechanism": {
132 +
            "type": "string",
133 +
            "description": "The mechanism used to allocate the treasury among proposals.",
134 +
            "knownValues": [
135 +
              "quadratic-funding",
136 +
              "s-process",
137 +
              "condorcet"
138 +
            ]
139 +
          },
112 140
          "shortDescriptionFacets": {
113 141
            "type": "array",
114 142
            "items": {
115 143
              "ref": "app.bsky.richtext.facet",
116 144
              "type": "ref"
117 145
            },
118 146
            "description": "Rich text facets for shortDescription"
119 147
          }
120 148
        }
121 149
      },
122 150
      "description": "A governance or funding event that users can create and participate in."
123 151
    }
124 152
  },
125 153
  "$type": "com.atproto.lexicon.schema",
126 154
  "lexicon": 1
127 155
}

Compare Other Versions

Lexicon Garden

@