at.mapped.post
Schema Diff
+5 -18
Compatibility Analysis
Breaking Changes Detected
8 breaking changes, 3 non-breaking changes.
Breaking Changes (8)
- RemovedVertex RemovedVertex { vertex_id: "at.mapped.post:body.stats" }
- RemovedVertex RemovedVertex { vertex_id: "at.mapped.post:body.stats.distance" }
- RemovedVertex RemovedVertex { vertex_id: "at.mapped.post:body.stats.duration" }
- RemovedVertex RemovedVertex { vertex_id: "at.mapped.post:body.stats.elevation" }
- RemovedEdge RemovedEdge { src: "at.mapped.post:body", tgt: "at.mapped.post:body.stats", kind: "prop", name: Some("stats") }
- RemovedEdge RemovedEdge { src: "at.mapped.post:body.stats", tgt: "at.mapped.post:body.stats.distance", kind: "prop", name: Some("distance") }
- RemovedEdge RemovedEdge { src: "at.mapped.post:body.stats", tgt: "at.mapped.post:body.stats.duration", kind: "prop", name: Some("duration") }
- RemovedEdge RemovedEdge { src: "at.mapped.post:body.stats", tgt: "at.mapped.post:body.stats.elevation", kind: "prop", name: Some("elevation") }
Non-Breaking Changes (3)
- AddedVertex AddedVertex { vertex_id: "at.mapped.post:body.basePost" }
- AddedEdge AddedEdge { src: "at.mapped.post:body", tgt: "at.mapped.post:body.basePost", kind: "prop", name: Some("basePost") }
- AddedEdge AddedEdge { src: "at.mapped.post:body.basePost", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "at.mapped.post:body.stats" }RemovedVertex { vertex_id: "at.mapped.post:body.stats.distance" }RemovedVertex { vertex_id: "at.mapped.post:body.stats.duration" }RemovedVertex { vertex_id: "at.mapped.post:body.stats.elevation" }
Added Elements
AddedVertex { vertex_id: "at.mapped.post:body.basePost" }
Additional Notes
- Breaking: RemovedEdge { src: "at.mapped.post:body", tgt: "at.mapped.post:body.stats", kind: "prop", name: Some("stats") }
- Breaking: RemovedEdge { src: "at.mapped.post:body.stats", tgt: "at.mapped.post:body.stats.distance", kind: "prop", name: Some("distance") }
- Breaking: RemovedEdge { src: "at.mapped.post:body.stats", tgt: "at.mapped.post:body.stats.duration", kind: "prop", name: Some("duration") }
- Breaking: RemovedEdge { src: "at.mapped.post:body.stats", tgt: "at.mapped.post:body.stats.elevation", kind: "prop", name: Some("elevation") }
- Non-breaking: AddedEdge { src: "at.mapped.post:body", tgt: "at.mapped.post:body.basePost", kind: "prop", name: Some("basePost") }
- Non-breaking: AddedEdge { src: "at.mapped.post:body.basePost", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A post representing either an activity or a travel experience",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"activityType": {
10
10
"description": "Reference to an activityType record. If present, this is an activity post; if absent, it's a travel post",
11
11
"ref": "com.atproto.repo.strongRef",
12
12
"type": "ref"
13
13
},
14
+
"basePost": {
15
+
"description": "Reference to another post that this post is based on (e.g. a travel post based on an activity post)",
16
+
"ref": "com.atproto.repo.strongRef",
17
+
"type": "ref"
18
+
},
14
19
"location": {
15
20
"description": "Reference to a location record",
16
21
"ref": "com.atproto.repo.strongRef",
17
22
"type": "ref"
18
-
},
19
-
"stats": {
20
-
"description": "Activity statistics (distance, duration, elevation). Only relevant for activity posts",
21
-
"properties": {
22
-
"distance": {
23
-
"description": "Distance covered in meters",
24
-
"type": "integer"
25
-
},
26
-
"duration": {
27
-
"description": "Duration of the activity in seconds",
28
-
"type": "integer"
29
-
},
30
-
"elevation": {
31
-
"description": "Elevation gain in meters",
32
-
"type": "integer"
33
-
}
34
-
},
35
-
"type": "object"
36
23
},
37
24
"text": {
38
25
"description": "Caption or description text for the post",
39
26
"maxLength": 500,
40
27
"type": "string"
41
28
},
42
29
"timestamp": {
43
30
"description": "When the post was created",
44
31
"format": "datetime",
45
32
"type": "string"
46
33
},
47
34
"title": {
48
35
"description": "Optional title for the post (especially useful for travel posts)",
49
36
"maxLength": 100,
50
37
"type": "string"
51
38
},
52
39
"trail": {
53
40
"description": "Reference to a trail record with route geometry",
54
41
"ref": "com.atproto.repo.strongRef",
55
42
"type": "ref"
56
43
}
57
44
},
58
45
"required": [
59
46
"timestamp"
60
47
],
61
48
"type": "object"
62
49
},
63
50
"type": "record"
64
51
}
65
52
},
66
53
"id": "at.mapped.post",
67
54
"lexicon": 1
68
55
}