at.mapped.post

mapped.at

Schema Diff

+5 -18

From

CID
bafyreid6te4r752...
Indexed At
2026-04-06 10:36 UTC
View this version

To

CID
bafyreifhe7cmtnz...
Indexed At
2026-04-06 13:42 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

8 breaking changes, 2 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 (2)
  • 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") }

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

Compare Other Versions

Lexicon Garden

@