app.certified.location

certified.app

Schema Diff

+33 -6

From

CID
bafyreiamjvk2vvl...
Indexed At
2026-02-18 18:02 UTC
View this version

To

CID
bafyreie6k3ztdq4...
Indexed At
2026-07-26 20:06 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 9 non-breaking changes.

Breaking Changes (2)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.certified.location#string", src: "app.certified.location#string", tgt: "app.certified.location#string.string", kind: "prop", name: Some("string") }
  • ConstraintTightened ConstraintTightened { vertex_id: "app.certified.location:body.locationType", sort: "knownValues", old_value: "[\"coordinate-decimal\",\"geojson-point\"]", new_value: "[\"coordinate-decimal\",\"geojson-point\",\"geojson\",\"h3\",\"geohash\",\"wkt\",\"address\",\"scaledCoordinates\"]" }
Non-Breaking Changes (9)
  • AddedVertex AddedVertex { vertex_id: "app.certified.location#string" }
  • AddedVertex AddedVertex { vertex_id: "app.certified.location#string.string" }
  • AddedVertex AddedVertex { vertex_id: "app.certified.location:body.location:variant2" }
  • AddedVertex AddedVertex { vertex_id: "app.certified.location:body.signatures" }
  • AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
  • AddedEdge AddedEdge { src: "app.certified.location:body", tgt: "app.certified.location:body.signatures", kind: "prop", name: Some("signatures") }
  • AddedEdge AddedEdge { src: "app.certified.location:body.location", tgt: "app.certified.location:body.location:variant2", kind: "variant", name: Some("#string") }
  • AddedEdge AddedEdge { src: "app.certified.location:body.location:variant2", tgt: "app.certified.location#string", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.certified.location:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.certified.location#string" }
  • AddedVertex { vertex_id: "app.certified.location#string.string" }
  • AddedVertex { vertex_id: "app.certified.location:body.location:variant2" }
  • AddedVertex { vertex_id: "app.certified.location:body.signatures" }
  • AddedVertex { vertex_id: "app.certified.signature.defs#list" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "app.certified.location:body.locationType", sort: "knownValues", old_value: "[\"coordinate-decimal\",\"geojson-point\"]", new_value: "[\"coordinate-decimal\",\"geojson-point\",\"geojson\",\"h3\",\"geohash\",\"wkt\",\"address\",\"scaledCoordinates\"]" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.certified.location#string", src: "app.certified.location#string", tgt: "app.certified.location#string.string", kind: "prop", name: Some("string") }
  • Non-breaking: AddedEdge { src: "app.certified.location:body", tgt: "app.certified.location:body.signatures", kind: "prop", name: Some("signatures") }
  • Non-breaking: AddedEdge { src: "app.certified.location:body.location", tgt: "app.certified.location:body.location:variant2", kind: "variant", name: Some("#string") }
  • Non-breaking: AddedEdge { src: "app.certified.location:body.location:variant2", tgt: "app.certified.location#string", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.certified.location:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
1 1
{
2 2
  "id": "app.certified.location",
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
          "lpVersion",
11 11
          "srs",
12 12
          "locationType",
13 13
          "location",
14 14
          "createdAt"
15 15
        ],
16 16
        "properties": {
17 17
          "srs": {
18 18
            "type": "string",
19 19
            "format": "uri",
20 20
            "maxLength": 100,
21 21
            "description": "The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system."
22 22
          },
23 23
          "name": {
24 24
            "type": "string",
25 25
            "maxLength": 1000,
26 -
            "description": "Optional name for this location",
26 +
            "description": "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
27 27
            "maxGraphemes": 100
28 28
          },
29 29
          "location": {
30 30
            "refs": [
31 31
              "org.hypercerts.defs#uri",
32 -
              "org.hypercerts.defs#smallBlob"
32 +
              "org.hypercerts.defs#smallBlob",
33 +
              "#string"
33 34
            ],
34 35
            "type": "union",
35 -
            "description": "The location of where the work was performed as a URI or blob."
36 +
            "description": "The location of where the work was performed as a URI, blob, or inline string."
36 37
          },
37 38
          "createdAt": {
38 39
            "type": "string",
39 40
            "format": "datetime",
40 41
            "description": "Client-declared timestamp when this record was originally created"
41 42
          },
42 43
          "lpVersion": {
43 44
            "type": "string",
44 45
            "maxLength": 10,
45 46
            "description": "The version of the Location Protocol"
46 47
          },
48 +
          "signatures": {
49 +
            "ref": "app.certified.signature.defs#list",
50 +
            "type": "ref",
51 +
            "description": "Optional cryptographic signatures attesting to this record's content."
52 +
          },
47 53
          "description": {
48 54
            "type": "string",
49 55
            "maxLength": 2000,
50 -
            "description": "Optional description for this location",
56 +
            "description": "Additional context about this location, such as its significance to the work or specific boundaries",
51 57
            "maxGraphemes": 500
52 58
          },
53 59
          "locationType": {
54 60
            "type": "string",
55 61
            "maxLength": 20,
56 -
            "description": "An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point)",
62 +
            "description": "An identifier for the format of the location data. Use `geojson-point` for a single GeoJSON Point; use `geojson` as the catch-all for any other GeoJSON geometry (Polygon, MultiPolygon, FeatureCollection, etc.) — the inner payload's own GeoJSON `type` field carries the specifics. Values beyond the known set are permitted; see the Location Protocol spec for the canonical registry: https://spec.decentralizedgeo.org/specification/location-types/#location-type-registry",
57 63
            "knownValues": [
58 64
              "coordinate-decimal",
59 -
              "geojson-point"
65 +
              "geojson-point",
66 +
              "geojson",
67 +
              "h3",
68 +
              "geohash",
69 +
              "wkt",
70 +
              "address",
71 +
              "scaledCoordinates"
60 72
            ]
61 73
          }
62 74
        }
63 75
      },
64 76
      "description": "A location reference"
77 +
    },
78 +
    "string": {
79 +
      "type": "object",
80 +
      "required": [
81 +
        "string"
82 +
      ],
83 +
      "properties": {
84 +
        "string": {
85 +
          "type": "string",
86 +
          "maxLength": 10000,
87 +
          "description": "The location string value",
88 +
          "maxGraphemes": 1000
89 +
        }
90 +
      },
91 +
      "description": "A location represented as a string, e.g. coordinates or a small GeoJSON string."
65 92
    }
66 93
  },
67 94
  "$type": "com.atproto.lexicon.schema",
68 95
  "lexicon": 1
69 96
}

Compare Other Versions

Lexicon Garden

@