win.tomo-x.rogaining.defs
Schema Diff
+88 -7
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
}