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