com.barryfrost.checkin

barryfrost.com

Schema Diff

+39 -20

From

CID
bafyreiefywrsai7...
Indexed At
2026-04-27 14:51 UTC
View this version

To

CID
bafyreiha3jqujpz...
Indexed At
2026-07-26 20:10 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

7 breaking changes, 11 non-breaking changes.

Breaking Changes (7)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.barryfrost.checkin#photo", src: "com.barryfrost.checkin#photo", tgt: "com.barryfrost.checkin#photo.image", kind: "prop", name: Some("image") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.barryfrost.checkin:body.photos:items", src: "com.barryfrost.checkin:body.photos:items", tgt: "com.barryfrost.checkin:body.photos:items.image", kind: "prop", name: Some("image") }
  • RemovedVertex RemovedVertex { vertex_id: "com.barryfrost.checkin:body.photos:items.alt" }
  • RemovedVertex RemovedVertex { vertex_id: "com.barryfrost.checkin:body.photos:items.image" }
  • RemovedEdge RemovedEdge { src: "com.barryfrost.checkin:body.photos:items", tgt: "com.barryfrost.checkin:body.photos:items.alt", kind: "prop", name: Some("alt") }
  • KindChanged KindChanged { vertex_id: "com.barryfrost.checkin:body.photos:items", old_kind: "object", new_kind: "ref" }
  • ConstraintAdded ConstraintAdded { vertex_id: "com.barryfrost.checkin:body.photos:items", sort: "ref", value: "#photo" }
Non-Breaking Changes (11)
  • AddedVertex AddedVertex { vertex_id: "com.barryfrost.checkin#photo" }
  • AddedVertex AddedVertex { vertex_id: "com.barryfrost.checkin#photo.alt" }
  • AddedVertex AddedVertex { vertex_id: "com.barryfrost.checkin#photo.image" }
  • AddedVertex AddedVertex { vertex_id: "com.barryfrost.checkin:body.address" }
  • AddedVertex AddedVertex { vertex_id: "com.barryfrost.checkin:body.category" }
  • AddedVertex AddedVertex { vertex_id: "com.barryfrost.checkin:body.comment" }
  • AddedEdge AddedEdge { src: "com.barryfrost.checkin#photo", tgt: "com.barryfrost.checkin#photo.alt", kind: "prop", name: Some("alt") }
  • AddedEdge AddedEdge { src: "com.barryfrost.checkin:body", tgt: "com.barryfrost.checkin:body.address", kind: "prop", name: Some("address") }
  • AddedEdge AddedEdge { src: "com.barryfrost.checkin:body", tgt: "com.barryfrost.checkin:body.category", kind: "prop", name: Some("category") }
  • AddedEdge AddedEdge { src: "com.barryfrost.checkin:body", tgt: "com.barryfrost.checkin:body.comment", kind: "prop", name: Some("comment") }
  • AddedEdge AddedEdge { src: "com.barryfrost.checkin:body.photos:items", tgt: "com.barryfrost.checkin#photo", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "com.barryfrost.checkin:body.photos:items.alt" }
  • RemovedVertex { vertex_id: "com.barryfrost.checkin:body.photos:items.image" }

Added Elements

  • AddedVertex { vertex_id: "com.barryfrost.checkin#photo" }
  • AddedVertex { vertex_id: "com.barryfrost.checkin#photo.alt" }
  • AddedVertex { vertex_id: "com.barryfrost.checkin#photo.image" }
  • AddedVertex { vertex_id: "com.barryfrost.checkin:body.address" }
  • AddedVertex { vertex_id: "com.barryfrost.checkin:body.category" }
  • AddedVertex { vertex_id: "com.barryfrost.checkin:body.comment" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "com.barryfrost.checkin:body.photos:items", sort: "ref", value: "#photo" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.barryfrost.checkin#photo", src: "com.barryfrost.checkin#photo", tgt: "com.barryfrost.checkin#photo.image", kind: "prop", name: Some("image") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "com.barryfrost.checkin:body.photos:items", src: "com.barryfrost.checkin:body.photos:items", tgt: "com.barryfrost.checkin:body.photos:items.image", kind: "prop", name: Some("image") }
  • Breaking: RemovedEdge { src: "com.barryfrost.checkin:body.photos:items", tgt: "com.barryfrost.checkin:body.photos:items.alt", kind: "prop", name: Some("alt") }
  • Breaking: KindChanged { vertex_id: "com.barryfrost.checkin:body.photos:items", old_kind: "object", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "com.barryfrost.checkin#photo", tgt: "com.barryfrost.checkin#photo.alt", kind: "prop", name: Some("alt") }
  • Non-breaking: AddedEdge { src: "com.barryfrost.checkin:body", tgt: "com.barryfrost.checkin:body.address", kind: "prop", name: Some("address") }
  • Non-breaking: AddedEdge { src: "com.barryfrost.checkin:body", tgt: "com.barryfrost.checkin:body.category", kind: "prop", name: Some("category") }
  • Non-breaking: AddedEdge { src: "com.barryfrost.checkin:body", tgt: "com.barryfrost.checkin:body.comment", kind: "prop", name: Some("comment") }
  • Non-breaking: AddedEdge { src: "com.barryfrost.checkin:body.photos:items", tgt: "com.barryfrost.checkin#photo", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A physical location checkin on Foursquare/Swarm",
6 -
      "key": "tid",
6 +
      "key": "any",
7 7
      "record": {
8 8
        "properties": {
9 +
          "address": {
10 +
            "description": "Formatted venue address, e.g. \"123 High Street, London, UK\"",
11 +
            "maxLength": 500,
12 +
            "type": "string"
13 +
          },
14 +
          "category": {
15 +
            "description": "Primary Foursquare venue category, e.g. \"Coffee Shop\"",
16 +
            "maxLength": 100,
17 +
            "type": "string"
18 +
          },
19 +
          "comment": {
20 +
            "description": "Optional user comment (Swarm \"shout\") attached to the checkin",
21 +
            "maxLength": 1000,
22 +
            "type": "string"
23 +
          },
9 24
          "createdAt": {
10 25
            "description": "ISO 8601 timestamp of the checkin",
11 26
            "format": "datetime",
12 27
            "type": "string"
13 28
          },
14 29
          "location": {
15 30
            "description": "The Foursquare place where the checkin occurred",
16 31
            "ref": "community.lexicon.location.fsq",
17 32
            "type": "ref"
18 33
          },
19 34
          "photos": {
20 35
            "description": "Photos taken at the checkin, uploaded as PDS blobs",
21 36
            "items": {
22 -
              "properties": {
23 -
                "alt": {
24 -
                  "maxLength": 1000,
25 -
                  "type": "string"
26 -
                },
27 -
                "image": {
28 -
                  "accept": [
29 -
                    "image/jpeg",
30 -
                    "image/png",
31 -
                    "image/webp"
32 -
                  ],
33 -
                  "maxSize": 1000000,
34 -
                  "type": "blob"
35 -
                }
36 -
              },
37 -
              "required": [
38 -
                "image"
39 -
              ],
40 -
              "type": "object"
37 +
              "ref": "#photo",
38 +
              "type": "ref"
41 39
            },
42 40
            "maxLength": 8,
43 41
            "type": "array"
44 42
          }
45 43
        },
46 44
        "required": [
47 45
          "createdAt",
48 46
          "location"
49 47
        ],
50 48
        "type": "object"
51 49
      },
52 50
      "type": "record"
51 +
    },
52 +
    "photo": {
53 +
      "properties": {
54 +
        "alt": {
55 +
          "maxLength": 1000,
56 +
          "type": "string"
57 +
        },
58 +
        "image": {
59 +
          "accept": [
60 +
            "image/jpeg",
61 +
            "image/png",
62 +
            "image/webp"
63 +
          ],
64 +
          "maxSize": 1000000,
65 +
          "type": "blob"
66 +
        }
67 +
      },
68 +
      "required": [
69 +
        "image"
70 +
      ],
71 +
      "type": "object"
53 72
    }
54 73
  },
55 74
  "id": "com.barryfrost.checkin",
56 75
  "lexicon": 1
57 76
}

Compare Other Versions

Lexicon Garden

@