win.tomo-x.rogaining.defs

tomo-x.win

Schema Diff

+48 -7

From

CID
bafyreibvrzpirdg...
Indexed At
2026-10-24 04:42 UTC
View this version

To

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

Compatibility Analysis

Breaking Changes Detected

6 breaking changes, 17 non-breaking changes.

Breaking Changes (6)
  • 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") }
  • 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") }
  • 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 (17)
  • 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#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" }
  • 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#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") }

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#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" }

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#rankingEntry", src: "win.tomo-x.rogaining.defs#rankingEntry", tgt: "win.tomo-x.rogaining.defs#rankingEntry.team", kind: "prop", name: Some("team") }
  • 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: 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#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") }
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
        },
65 79
        "teamCount": {
66 80
          "minimum": 0,
67 81
          "type": "integer"
68 82
        },
69 83
        "uri": {
70 84
          "format": "at-uri",
71 85
          "type": "string"
72 86
        }
73 87
      },
74 88
      "required": [
75 89
        "uri",
76 90
        "cid",
77 91
        "author",
78 92
        "record",
79 93
        "indexedAt"
80 94
      ],
81 95
      "type": "object"
82 96
    },
83 97
    "location": {
84 98
      "description": "Coordinates as decimal degrees encoded as strings (lexicon has no float type), e.g. \"35.681236\".",
85 99
      "properties": {
86 100
        "latitude": {
87 101
          "maxLength": 20,
88 102
          "type": "string"
89 103
        },
90 104
        "longitude": {
91 105
          "maxLength": 20,
92 106
          "type": "string"
93 107
        }
94 108
      },
95 109
      "required": [
96 110
        "latitude",
97 111
        "longitude"
98 112
      ],
99 113
      "type": "object"
100 114
    },
101 115
    "rankingEntry": {
102 116
      "properties": {
103 117
        "approvedCount": {
118 +
          "description": "Number of distinct non-goal checkpoints with an approved submission.",
104 119
          "minimum": 0,
105 120
          "type": "integer"
106 121
        },
107 -
        "participant": {
108 -
          "ref": "app.bsky.actor.defs#profileViewBasic",
109 -
          "type": "ref"
110 -
        },
111 122
        "rank": {
112 123
          "minimum": 1,
113 124
          "type": "integer"
114 125
        },
126 +
        "team": {
127 +
          "ref": "win.tomo-x.rogaining.defs#teamView",
128 +
          "type": "ref"
129 +
        },
115 130
        "totalPoints": {
131 +
          "description": "Sum of approved checkpoint points and the team's finish-time bonus.",
116 132
          "minimum": 0,
117 133
          "type": "integer"
118 134
        }
119 135
      },
120 136
      "required": [
121 -
        "participant",
137 +
        "team",
122 138
        "rank",
123 139
        "totalPoints",
124 140
        "approvedCount"
125 141
      ],
126 142
      "type": "object"
127 143
    },
128 144
    "submissionView": {
129 145
      "properties": {
130 146
        "approvalUri": {
131 147
          "description": "AT-URI of the approve record, if approved.",
132 148
          "format": "at-uri",
133 149
          "type": "string"
134 150
        },
135 151
        "author": {
136 152
          "ref": "app.bsky.actor.defs#profileViewBasic",
137 153
          "type": "ref"
138 154
        },
139 155
        "cid": {
140 156
          "format": "cid",
141 157
          "type": "string"
142 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 +
        },
143 164
        "indexedAt": {
144 165
          "format": "datetime",
145 166
          "type": "string"
146 167
        },
147 168
        "photoUrl": {
148 169
          "format": "uri",
149 170
          "type": "string"
150 171
        },
172 +
        "reason": {
173 +
          "description": "The reason of the approve or reject record that decided the status.",
174 +
          "type": "string"
175 +
        },
151 176
        "record": {
152 177
          "description": "The win.tomo-x.rogaining.submit record.",
153 178
          "type": "unknown"
154 179
        },
180 +
        "rejectionUri": {
181 +
          "description": "AT-URI of the reject record, if rejected.",
182 +
          "format": "at-uri",
183 +
          "type": "string"
184 +
        },
155 185
        "status": {
156 -
          "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.",
157 187
          "knownValues": [
158 188
            "pending",
159 -
            "approved"
189 +
            "approved",
190 +
            "rejected"
160 191
          ],
161 192
          "type": "string"
162 193
        },
194 +
        "team": {
195 +
          "description": "The team the author belongs to in this event.",
196 +
          "format": "at-uri",
197 +
          "type": "string"
198 +
        },
163 199
        "uri": {
164 200
          "format": "at-uri",
165 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"
166 206
        }
167 207
      },
168 208
      "required": [
169 209
        "uri",
170 210
        "cid",
171 211
        "author",
212 +
        "team",
172 213
        "record",
173 214
        "status",
174 215
        "indexedAt"
175 216
      ],
176 217
      "type": "object"
177 218
    },
178 219
    "teamView": {
179 220
      "properties": {
180 221
        "cid": {
181 222
          "format": "cid",
182 223
          "type": "string"
183 224
        },
184 225
        "indexedAt": {
185 226
          "format": "datetime",
186 227
          "type": "string"
187 228
        },
188 229
        "members": {
189 230
          "description": "Profiles of the team members.",
190 231
          "items": {
191 232
            "ref": "app.bsky.actor.defs#profileViewBasic",
192 233
            "type": "ref"
193 234
          },
194 235
          "type": "array"
195 236
        },
196 237
        "record": {
197 238
          "description": "The win.tomo-x.rogaining.team record.",
198 239
          "type": "unknown"
199 240
        },
200 241
        "uri": {
201 242
          "format": "at-uri",
202 243
          "type": "string"
203 244
        }
204 245
      },
205 246
      "required": [
206 247
        "uri",
207 248
        "cid",
208 249
        "record",
209 250
        "members",
210 251
        "indexedAt"
211 252
      ],
212 253
      "type": "object"
213 254
    }
214 255
  },
215 256
  "id": "win.tomo-x.rogaining.defs",
216 257
  "lexicon": 1
217 258
}

Compare Other Versions

Lexicon Garden

@