app.certified.location

certified.app

Schema Diff

+34 -6

From

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

To

CID
bafyreif6dkefeah...
Indexed At
2026-09-01 10:12 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\",\"country-code\",\"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\",\"country-code\",\"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
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A location reference",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "createdAt": {
10 10
            "description": "Client-declared timestamp when this record was originally created",
11 11
            "format": "datetime",
12 12
            "type": "string"
13 13
          },
14 14
          "description": {
15 -
            "description": "Optional description for this location",
15 +
            "description": "Additional context about this location, such as its significance to the work or specific boundaries",
16 16
            "maxGraphemes": 500,
17 17
            "maxLength": 2000,
18 18
            "type": "string"
19 19
          },
20 20
          "location": {
21 -
            "description": "The location of where the work was performed as a URI or blob.",
21 +
            "description": "The location of where the work was performed as a URI, blob, or inline string.",
22 22
            "refs": [
23 23
              "org.hypercerts.defs#uri",
24 -
              "org.hypercerts.defs#smallBlob"
24 +
              "org.hypercerts.defs#smallBlob",
25 +
              "#string"
25 26
            ],
26 27
            "type": "union"
27 28
          },
28 29
          "locationType": {
29 -
            "description": "An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point)",
30 +
            "description": "An identifier for the format of the location data. Use `country-code` for uppercase ISO 3166-1 alpha-2 codes in `location.string` (e.g. `CH`). Although this lexicon requires `srs`, it has no meaning for this type and consumers must ignore it. 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",
30 31
            "knownValues": [
31 32
              "coordinate-decimal",
32 -
              "geojson-point"
33 +
              "geojson-point",
34 +
              "geojson",
35 +
              "h3",
36 +
              "geohash",
37 +
              "wkt",
38 +
              "address",
39 +
              "country-code",
40 +
              "scaledCoordinates"
33 41
            ],
34 42
            "maxLength": 20,
35 43
            "type": "string"
36 44
          },
37 45
          "lpVersion": {
38 46
            "description": "The version of the Location Protocol",
39 47
            "maxLength": 10,
40 48
            "type": "string"
41 49
          },
42 50
          "name": {
43 -
            "description": "Optional name for this location",
51 +
            "description": "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
44 52
            "maxGraphemes": 100,
45 53
            "maxLength": 1000,
46 54
            "type": "string"
47 55
          },
56 +
          "signatures": {
57 +
            "description": "Optional cryptographic signatures attesting to this record's content.",
58 +
            "ref": "app.certified.signature.defs#list",
59 +
            "type": "ref"
60 +
          },
48 61
          "srs": {
49 62
            "description": "The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system.",
50 63
            "format": "uri",
51 64
            "maxLength": 100,
52 65
            "type": "string"
53 66
          }
54 67
        },
55 68
        "required": [
56 69
          "lpVersion",
57 70
          "srs",
58 71
          "locationType",
59 72
          "location",
60 73
          "createdAt"
61 74
        ],
62 75
        "type": "object"
63 76
      },
64 77
      "type": "record"
78 +
    },
79 +
    "string": {
80 +
      "description": "A location represented as a string, e.g. coordinates or a small GeoJSON string.",
81 +
      "properties": {
82 +
        "string": {
83 +
          "description": "The location string value",
84 +
          "maxGraphemes": 1000,
85 +
          "maxLength": 10000,
86 +
          "type": "string"
87 +
        }
88 +
      },
89 +
      "required": [
90 +
        "string"
91 +
      ],
92 +
      "type": "object"
65 93
    }
66 94
  },
67 95
  "id": "app.certified.location",
68 96
  "lexicon": 1
69 97
}

Compare Other Versions

Lexicon Garden

@