win.tomo-x.rogaining.defs

tomo-x.win

Schema Diff

+88 -7

From

CID
bafyreiggkrwllts...
Indexed At
2026-10-24 00:48 UTC
View this version

To

CID
bafyreidurlrmbww...
Indexed At
2026-10-25 06:10 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

11 breaking changes, 28 non-breaking changes.

Breaking Changes (11)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.indexedAt", kind: "prop", name: Some("indexedAt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.members", kind: "prop", name: Some("members") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.record", kind: "prop", name: Some("record") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.cid", kind: "prop", name: Some("cid") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#submissionView", src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.team", kind: "prop", name: Some("team") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry", src: "win.tomo-x.rogaining.defs#rankingEntry", tgt: "win.tomo-x.rogaining.defs#rankingEntry.team", kind: "prop", name: Some("team") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry", src: "win.tomo-x.rogaining.defs#rankingEntry", tgt: "win.tomo-x.rogaining.defs#rankingEntry.participant", kind: "prop", name: Some("participant") }
  • RemovedVertex RemovedVertex { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry.participant" }
  • RemovedEdge RemovedEdge { src: "win.tomo-x.rogaining.defs#rankingEntry.participant", tgt: "app.bsky.actor.defs#profileViewBasic", kind: "ref", name: None }
  • ConstraintTightened ConstraintTightened { vertex_id: "win.tomo-x.rogaining.defs#submissionView.status", sort: "knownValues", old_value: "[\"pending\",\"approved\"]", new_value: "[\"pending\",\"approved\",\"rejected\"]" }
Non-Breaking Changes (28)
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#checkpointView.imageUrl" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls:items" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#eventView.teamCount" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry.team" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.distanceMeters" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.reason" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.rejectionUri" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.team" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.withinEventPeriod" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.cid" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.indexedAt" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.members" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.members:items" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.record" }
  • AddedVertex AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.uri" }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#checkpointView", tgt: "win.tomo-x.rogaining.defs#checkpointView.imageUrl", kind: "prop", name: Some("imageUrl") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#checkpointView", tgt: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls", kind: "prop", name: Some("internalImageUrls") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls", tgt: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#eventView", tgt: "win.tomo-x.rogaining.defs#eventView.teamCount", kind: "prop", name: Some("teamCount") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#rankingEntry.team", tgt: "win.tomo-x.rogaining.defs#teamView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.distanceMeters", kind: "prop", name: Some("distanceMeters") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.reason", kind: "prop", name: Some("reason") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.rejectionUri", kind: "prop", name: Some("rejectionUri") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.withinEventPeriod", kind: "prop", name: Some("withinEventPeriod") }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#teamView.members", tgt: "win.tomo-x.rogaining.defs#teamView.members:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "win.tomo-x.rogaining.defs#teamView.members:items", tgt: "app.bsky.actor.defs#profileViewBasic", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry.participant" }

Added Elements

  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#checkpointView.imageUrl" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls:items" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#eventView.teamCount" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry.team" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.distanceMeters" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.reason" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.rejectionUri" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.team" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#submissionView.withinEventPeriod" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.cid" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.indexedAt" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.members" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.members:items" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.record" }
  • AddedVertex { vertex_id: "win.tomo-x.rogaining.defs#teamView.uri" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "win.tomo-x.rogaining.defs#submissionView.status", sort: "knownValues", old_value: "[\"pending\",\"approved\"]", new_value: "[\"pending\",\"approved\",\"rejected\"]" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.indexedAt", kind: "prop", name: Some("indexedAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.members", kind: "prop", name: Some("members") }
  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.record", kind: "prop", name: Some("record") }
  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.cid", kind: "prop", name: Some("cid") }
  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#teamView", src: "win.tomo-x.rogaining.defs#teamView", tgt: "win.tomo-x.rogaining.defs#teamView.uri", kind: "prop", name: Some("uri") }
  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#submissionView", src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.team", kind: "prop", name: Some("team") }
  • Breaking: RequiredEdgeAdded { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry", src: "win.tomo-x.rogaining.defs#rankingEntry", tgt: "win.tomo-x.rogaining.defs#rankingEntry.team", kind: "prop", name: Some("team") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "win.tomo-x.rogaining.defs#rankingEntry", src: "win.tomo-x.rogaining.defs#rankingEntry", tgt: "win.tomo-x.rogaining.defs#rankingEntry.participant", kind: "prop", name: Some("participant") }
  • Breaking: RemovedEdge { src: "win.tomo-x.rogaining.defs#rankingEntry.participant", tgt: "app.bsky.actor.defs#profileViewBasic", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#checkpointView", tgt: "win.tomo-x.rogaining.defs#checkpointView.imageUrl", kind: "prop", name: Some("imageUrl") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#checkpointView", tgt: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls", kind: "prop", name: Some("internalImageUrls") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls", tgt: "win.tomo-x.rogaining.defs#checkpointView.internalImageUrls:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#eventView", tgt: "win.tomo-x.rogaining.defs#eventView.teamCount", kind: "prop", name: Some("teamCount") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#rankingEntry.team", tgt: "win.tomo-x.rogaining.defs#teamView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.distanceMeters", kind: "prop", name: Some("distanceMeters") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.reason", kind: "prop", name: Some("reason") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.rejectionUri", kind: "prop", name: Some("rejectionUri") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#submissionView", tgt: "win.tomo-x.rogaining.defs#submissionView.withinEventPeriod", kind: "prop", name: Some("withinEventPeriod") }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#teamView.members", tgt: "win.tomo-x.rogaining.defs#teamView.members:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "win.tomo-x.rogaining.defs#teamView.members:items", tgt: "app.bsky.actor.defs#profileViewBasic", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "checkpointView": {
5 5
      "properties": {
6 6
        "cid": {
7 7
          "format": "cid",
8 8
          "type": "string"
9 9
        },
10 +
        "imageUrl": {
11 +
          "description": "URL of the checkpoint image.",
12 +
          "format": "uri",
13 +
          "type": "string"
14 +
        },
10 15
        "indexedAt": {
11 16
          "format": "datetime",
12 17
          "type": "string"
13 18
        },
19 +
        "internalImageUrls": {
20 +
          "description": "URLs of the internal images. Only returned to the event's author.",
21 +
          "items": {
22 +
            "format": "uri",
23 +
            "type": "string"
24 +
          },
25 +
          "maxLength": 10,
26 +
          "type": "array"
27 +
        },
14 28
        "record": {
15 29
          "description": "The win.tomo-x.rogaining.checkpoint record.",
16 30
          "type": "unknown"
17 31
        },
18 32
        "uri": {
19 33
          "format": "at-uri",
20 34
          "type": "string"
21 35
        }
22 36
      },
23 37
      "required": [
24 38
        "uri",
25 39
        "cid",
26 40
        "record",
27 41
        "indexedAt"
28 42
      ],
29 43
      "type": "object"
30 44
    },
31 45
    "eventView": {
32 46
      "properties": {
33 47
        "approver": {
34 48
          "ref": "app.bsky.actor.defs#profileViewBasic",
35 49
          "type": "ref"
36 50
        },
37 51
        "author": {
38 52
          "ref": "app.bsky.actor.defs#profileViewBasic",
39 53
          "type": "ref"
40 54
        },
41 55
        "checkpointCount": {
42 56
          "minimum": 0,
43 57
          "type": "integer"
44 58
        },
45 59
        "cid": {
46 60
          "format": "cid",
47 61
          "type": "string"
48 62
        },
49 63
        "imageUrl": {
50 64
          "format": "uri",
51 65
          "type": "string"
52 66
        },
53 67
        "indexedAt": {
54 68
          "format": "datetime",
55 69
          "type": "string"
56 70
        },
57 71
        "participantCount": {
58 72
          "minimum": 0,
59 73
          "type": "integer"
60 74
        },
61 75
        "record": {
62 76
          "description": "The win.tomo-x.rogaining.event record.",
63 77
          "type": "unknown"
64 78
        },
79 +
        "teamCount": {
80 +
          "minimum": 0,
81 +
          "type": "integer"
82 +
        },
65 83
        "uri": {
66 84
          "format": "at-uri",
67 85
          "type": "string"
68 86
        }
69 87
      },
70 88
      "required": [
71 89
        "uri",
72 90
        "cid",
73 91
        "author",
74 92
        "record",
75 93
        "indexedAt"
76 94
      ],
77 95
      "type": "object"
78 96
    },
79 97
    "location": {
80 98
      "description": "Coordinates as decimal degrees encoded as strings (lexicon has no float type), e.g. \"35.681236\".",
81 99
      "properties": {
82 100
        "latitude": {
83 101
          "maxLength": 20,
84 102
          "type": "string"
85 103
        },
86 104
        "longitude": {
87 105
          "maxLength": 20,
88 106
          "type": "string"
89 107
        }
90 108
      },
91 109
      "required": [
92 110
        "latitude",
93 111
        "longitude"
94 112
      ],
95 113
      "type": "object"
96 114
    },
97 115
    "rankingEntry": {
98 116
      "properties": {
99 117
        "approvedCount": {
118 +
          "description": "Number of distinct non-goal checkpoints with an approved submission.",
100 119
          "minimum": 0,
101 120
          "type": "integer"
102 -
        },
103 -
        "participant": {
104 -
          "ref": "app.bsky.actor.defs#profileViewBasic",
105 -
          "type": "ref"
106 121
        },
107 122
        "rank": {
108 123
          "minimum": 1,
109 124
          "type": "integer"
110 125
        },
126 +
        "team": {
127 +
          "ref": "win.tomo-x.rogaining.defs#teamView",
128 +
          "type": "ref"
129 +
        },
111 130
        "totalPoints": {
131 +
          "description": "Sum of approved checkpoint points and the team's finish-time bonus.",
112 132
          "minimum": 0,
113 133
          "type": "integer"
114 134
        }
115 135
      },
116 136
      "required": [
117 -
        "participant",
137 +
        "team",
118 138
        "rank",
119 139
        "totalPoints",
120 140
        "approvedCount"
121 141
      ],
122 142
      "type": "object"
123 143
    },
124 144
    "submissionView": {
125 145
      "properties": {
126 146
        "approvalUri": {
127 147
          "description": "AT-URI of the approve record, if approved.",
128 148
          "format": "at-uri",
129 149
          "type": "string"
130 150
        },
131 151
        "author": {
132 152
          "ref": "app.bsky.actor.defs#profileViewBasic",
133 153
          "type": "ref"
134 154
        },
135 155
        "cid": {
136 156
          "format": "cid",
137 157
          "type": "string"
138 158
        },
159 +
        "distanceMeters": {
160 +
          "description": "Distance between the submitted location and the checkpoint, for the approver's review.",
161 +
          "minimum": 0,
162 +
          "type": "integer"
163 +
        },
139 164
        "indexedAt": {
140 165
          "format": "datetime",
141 166
          "type": "string"
142 167
        },
143 168
        "photoUrl": {
144 169
          "format": "uri",
145 170
          "type": "string"
146 171
        },
172 +
        "reason": {
173 +
          "description": "The reason of the approve or reject record that decided the status.",
174 +
          "type": "string"
175 +
        },
147 176
        "record": {
148 177
          "description": "The win.tomo-x.rogaining.submit record.",
149 178
          "type": "unknown"
150 179
        },
180 +
        "rejectionUri": {
181 +
          "description": "AT-URI of the reject record, if rejected.",
182 +
          "format": "at-uri",
183 +
          "type": "string"
184 +
        },
151 185
        "status": {
152 -
          "description": "approved when a valid approve record by the event's approver exists.",
186 +
          "description": "Decided by one valid approve or reject record for the submission's current cid, made by the event's author or approver. The author's records take precedence over the approver's; among one account's records, the one with the newest createdAt wins. approved or rejected by that record, otherwise pending. Only approved submissions count for the ranking.",
153 187
          "knownValues": [
154 188
            "pending",
155 -
            "approved"
189 +
            "approved",
190 +
            "rejected"
156 191
          ],
157 192
          "type": "string"
158 193
        },
194 +
        "team": {
195 +
          "description": "The team the author belongs to in this event.",
196 +
          "format": "at-uri",
197 +
          "type": "string"
198 +
        },
159 199
        "uri": {
160 200
          "format": "at-uri",
161 201
          "type": "string"
202 +
        },
203 +
        "withinEventPeriod": {
204 +
          "description": "Whether the submission's createdAt is between the event's startsAt and endsAt, for the approver's review.",
205 +
          "type": "boolean"
162 206
        }
163 207
      },
164 208
      "required": [
165 209
        "uri",
166 210
        "cid",
167 211
        "author",
212 +
        "team",
168 213
        "record",
169 214
        "status",
170 215
        "indexedAt"
171 216
      ],
172 217
      "type": "object"
218 +
    },
219 +
    "teamView": {
220 +
      "properties": {
221 +
        "cid": {
222 +
          "format": "cid",
223 +
          "type": "string"
224 +
        },
225 +
        "indexedAt": {
226 +
          "format": "datetime",
227 +
          "type": "string"
228 +
        },
229 +
        "members": {
230 +
          "description": "Profiles of the team members.",
231 +
          "items": {
232 +
            "ref": "app.bsky.actor.defs#profileViewBasic",
233 +
            "type": "ref"
234 +
          },
235 +
          "type": "array"
236 +
        },
237 +
        "record": {
238 +
          "description": "The win.tomo-x.rogaining.team record.",
239 +
          "type": "unknown"
240 +
        },
241 +
        "uri": {
242 +
          "format": "at-uri",
243 +
          "type": "string"
244 +
        }
245 +
      },
246 +
      "required": [
247 +
        "uri",
248 +
        "cid",
249 +
        "record",
250 +
        "members",
251 +
        "indexedAt"
252 +
      ],
253 +
      "type": "object"
173 254
    }
174 255
  },
175 256
  "id": "win.tomo-x.rogaining.defs",
176 257
  "lexicon": 1
177 258
}

Compare Other Versions

Lexicon Garden

@