org.passingreads.book.event

passingreads.org

Schema Diff

+102 -5

From

CID
bafyreibt4hy7osw...
Indexed At
2026-05-20 06:06 UTC
View this version

To

CID
bafyreidycff5x4l...
Indexed At
2026-09-10 14:16 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

6 breaking changes, 54 non-breaking changes.

Breaking Changes (6)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#checkin", src: "org.passingreads.book.event#checkin", tgt: "org.passingreads.book.event#checkin.location", kind: "prop", name: Some("location") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#giftAcceptance", src: "org.passingreads.book.event#giftAcceptance", tgt: "org.passingreads.book.event#giftAcceptance.gift", kind: "prop", name: Some("gift") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#find", src: "org.passingreads.book.event#find", tgt: "org.passingreads.book.event#find.location", kind: "prop", name: Some("location") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#drop", src: "org.passingreads.book.event#drop", tgt: "org.passingreads.book.event#drop.location", kind: "prop", name: Some("location") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#gift", src: "org.passingreads.book.event#gift", tgt: "org.passingreads.book.event#gift.recipient", kind: "prop", name: Some("recipient") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "org.passingreads.book.event:body", src: "org.passingreads.book.event:body", tgt: "org.passingreads.book.event:body.location", kind: "prop", name: Some("location") }
Non-Breaking Changes (54)
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#checkin" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#checkin.location" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#checkin.location:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#checkin.location:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#drop" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#drop.location" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#drop.location:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#drop.location:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#find" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#find.location" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#find.location:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#find.location:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#gift" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#gift.location" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#gift.location:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#gift.location:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#gift.recipient" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#giftAcceptance" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event#giftAcceptance.gift" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event:body.details" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant2" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant3" }
  • AddedVertex AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant4" }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#checkin.location", tgt: "org.passingreads.book.event#checkin.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#checkin.location", tgt: "org.passingreads.book.event#checkin.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#checkin.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#checkin.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#drop.location", tgt: "org.passingreads.book.event#drop.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#drop.location", tgt: "org.passingreads.book.event#drop.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#drop.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#drop.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#find.location", tgt: "org.passingreads.book.event#find.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#find.location", tgt: "org.passingreads.book.event#find.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#find.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#find.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#gift", tgt: "org.passingreads.book.event#gift.location", kind: "prop", name: Some("location") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#gift.location", tgt: "org.passingreads.book.event#gift.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#gift.location", tgt: "org.passingreads.book.event#gift.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#gift.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#gift.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event#giftAcceptance.gift", tgt: "com.atproto.repo.strongRef#main", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body", tgt: "org.passingreads.book.event:body.details", kind: "prop", name: Some("details") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant0", kind: "variant", name: Some("#drop") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant1", kind: "variant", name: Some("#find") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant2", kind: "variant", name: Some("#checkin") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant3", kind: "variant", name: Some("#gift") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant4", kind: "variant", name: Some("#giftAcceptance") }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details:variant0", tgt: "org.passingreads.book.event#drop", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details:variant1", tgt: "org.passingreads.book.event#find", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details:variant2", tgt: "org.passingreads.book.event#checkin", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details:variant3", tgt: "org.passingreads.book.event#gift", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.passingreads.book.event:body.details:variant4", tgt: "org.passingreads.book.event#giftAcceptance", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "org.passingreads.book.event#checkin" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#checkin.location" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#checkin.location:variant0" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#checkin.location:variant1" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#drop" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#drop.location" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#drop.location:variant0" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#drop.location:variant1" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#find" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#find.location" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#find.location:variant0" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#find.location:variant1" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#gift" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#gift.location" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#gift.location:variant0" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#gift.location:variant1" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#gift.recipient" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#giftAcceptance" }
  • AddedVertex { vertex_id: "org.passingreads.book.event#giftAcceptance.gift" }
  • AddedVertex { vertex_id: "org.passingreads.book.event:body.details" }
  • AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant0" }
  • AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant1" }
  • AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant2" }
  • AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant3" }
  • AddedVertex { vertex_id: "org.passingreads.book.event:body.details:variant4" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#giftAcceptance", src: "org.passingreads.book.event#giftAcceptance", tgt: "org.passingreads.book.event#giftAcceptance.gift", kind: "prop", name: Some("gift") }
  • Breaking: RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#drop", src: "org.passingreads.book.event#drop", tgt: "org.passingreads.book.event#drop.location", kind: "prop", name: Some("location") }
  • Breaking: RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#find", src: "org.passingreads.book.event#find", tgt: "org.passingreads.book.event#find.location", kind: "prop", name: Some("location") }
  • Breaking: RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#gift", src: "org.passingreads.book.event#gift", tgt: "org.passingreads.book.event#gift.recipient", kind: "prop", name: Some("recipient") }
  • Breaking: RequiredEdgeAdded { vertex_id: "org.passingreads.book.event#checkin", src: "org.passingreads.book.event#checkin", tgt: "org.passingreads.book.event#checkin.location", kind: "prop", name: Some("location") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "org.passingreads.book.event:body", src: "org.passingreads.book.event:body", tgt: "org.passingreads.book.event:body.location", kind: "prop", name: Some("location") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#checkin.location", tgt: "org.passingreads.book.event#checkin.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#checkin.location", tgt: "org.passingreads.book.event#checkin.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#checkin.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#checkin.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#drop.location", tgt: "org.passingreads.book.event#drop.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#drop.location", tgt: "org.passingreads.book.event#drop.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#drop.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#drop.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#find.location", tgt: "org.passingreads.book.event#find.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#find.location", tgt: "org.passingreads.book.event#find.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#find.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#find.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#gift", tgt: "org.passingreads.book.event#gift.location", kind: "prop", name: Some("location") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#gift.location", tgt: "org.passingreads.book.event#gift.location:variant0", kind: "variant", name: Some("community.lexicon.location.hthree#main") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#gift.location", tgt: "org.passingreads.book.event#gift.location:variant1", kind: "variant", name: Some("#osmLocation") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#gift.location:variant0", tgt: "community.lexicon.location.hthree#main", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#gift.location:variant1", tgt: "org.passingreads.book.event#osmLocation", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event#giftAcceptance.gift", tgt: "com.atproto.repo.strongRef#main", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body", tgt: "org.passingreads.book.event:body.details", kind: "prop", name: Some("details") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant0", kind: "variant", name: Some("#drop") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant1", kind: "variant", name: Some("#find") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant2", kind: "variant", name: Some("#checkin") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant3", kind: "variant", name: Some("#gift") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details", tgt: "org.passingreads.book.event:body.details:variant4", kind: "variant", name: Some("#giftAcceptance") }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details:variant0", tgt: "org.passingreads.book.event#drop", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details:variant1", tgt: "org.passingreads.book.event#find", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details:variant2", tgt: "org.passingreads.book.event#checkin", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details:variant3", tgt: "org.passingreads.book.event#gift", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.passingreads.book.event:body.details:variant4", tgt: "org.passingreads.book.event#giftAcceptance", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "checkin": {
5 +
      "description": "The book has moved, but has not changed hands.",
6 +
      "properties": {
7 +
        "location": {
8 +
          "description": "Where the book is now (an h3 cell or an OSM place)",
9 +
          "refs": [
10 +
            "community.lexicon.location.hthree#main",
11 +
            "#osmLocation"
12 +
          ],
13 +
          "type": "union"
14 +
        }
15 +
      },
16 +
      "required": [
17 +
        "location"
18 +
      ],
19 +
      "type": "object"
20 +
    },
21 +
    "drop": {
22 +
      "description": "The book was left at a location for someone else to take.",
23 +
      "properties": {
24 +
        "location": {
25 +
          "description": "Where the book was left (an h3 cell or an OSM place)",
26 +
          "refs": [
27 +
            "community.lexicon.location.hthree#main",
28 +
            "#osmLocation"
29 +
          ],
30 +
          "type": "union"
31 +
        }
32 +
      },
33 +
      "required": [
34 +
        "location"
35 +
      ],
36 +
      "type": "object"
37 +
    },
38 +
    "find": {
39 +
      "description": "The book was picked up, and is now held by the actor.",
40 +
      "properties": {
41 +
        "location": {
42 +
          "description": "Where the book was picked up (an h3 cell or an OSM place)",
43 +
          "refs": [
44 +
            "community.lexicon.location.hthree#main",
45 +
            "#osmLocation"
46 +
          ],
47 +
          "type": "union"
48 +
        }
49 +
      },
50 +
      "required": [
51 +
        "location"
52 +
      ],
53 +
      "type": "object"
54 +
    },
55 +
    "gift": {
56 +
      "description": "The book was handed to a named person. It is theirs once they publish a #giftAcceptance.",
57 +
      "properties": {
58 +
        "location": {
59 +
          "description": "Where the handover happened, if the giver chose to record it.",
60 +
          "refs": [
61 +
            "community.lexicon.location.hthree#main",
62 +
            "#osmLocation"
63 +
          ],
64 +
          "type": "union"
65 +
        },
66 +
        "recipient": {
67 +
          "description": "The person the book was handed to, and the only one who may accept it.",
68 +
          "format": "did",
69 +
          "type": "string"
70 +
        }
71 +
      },
72 +
      "required": [
73 +
        "recipient"
74 +
      ],
75 +
      "type": "object"
76 +
    },
77 +
    "giftAcceptance": {
78 +
      "description": "The named recipient of a #gift has taken the book. Carries no signatures: the recipient need not hold the book's keypair, and the signed gift naming their repository is the authority instead.",
79 +
      "properties": {
80 +
        "gift": {
81 +
          "description": "The org.passingreads.book.event whose #gift is being accepted.",
82 +
          "ref": "com.atproto.repo.strongRef#main",
83 +
          "type": "ref"
84 +
        }
85 +
      },
86 +
      "required": [
87 +
        "gift"
88 +
      ],
89 +
      "type": "object"
90 +
    },
4 91
    "main": {
5 92
      "description": "The status of a book has changed.",
6 93
      "key": "tid",
7 94
      "record": {
8 95
        "properties": {
9 96
          "book": {
10 97
            "description": "The book that was dropped (a org.passingreads.book.registration)",
11 98
            "ref": "com.atproto.repo.strongRef#main",
12 99
            "type": "ref"
13 100
          },
101 +
          "details": {
102 +
            "description": "What happened to the book. Each member carries the fields that event type requires — notably whether a `location` is mandatory. Absent only on records written before this union existed, which carry `event` and a top-level `location` instead.",
103 +
            "refs": [
104 +
              "#drop",
105 +
              "#find",
106 +
              "#checkin",
107 +
              "#gift",
108 +
              "#giftAcceptance"
109 +
            ],
110 +
            "type": "union"
111 +
          },
14 112
          "event": {
15 -
            "description": "What event has occurred",
113 +
            "description": "DEPRECATED: superseded by `details`, and ignored whenever `details` is present. Retained so this lexicon still describes records written before the union existed.",
16 114
            "knownValues": [
17 115
              "org.passingreads.book.checkin",
18 116
              "org.passingreads.book.drop",
19 117
              "org.passingreads.book.find"
20 118
            ],
21 119
            "type": "string"
22 120
          },
23 121
          "location": {
24 -
            "description": "Where this event occurred (an h3 cell or an OSM place)",
122 +
            "description": "DEPRECATED: superseded by the `location` inside `details`, and ignored whenever `details` is present. Retained so this lexicon still describes records written before the union existed.",
25 123
            "refs": [
26 124
              "community.lexicon.location.hthree#main",
27 125
              "#osmLocation"
28 126
            ],
29 127
            "type": "union"
30 128
          },
31 129
          "occurredAt": {
32 130
            "description": "Client-declared timestamp of when the book was dropped",
33 131
            "format": "datetime",
34 132
            "type": "string"
35 133
          },
36 134
          "signatures": {
37 -
            "description": "Inline attestations binding this event to the book's keypair.",
135 +
            "description": "Inline attestations binding this event to the book's keypair. Empty only on a #giftAcceptance, whose authority is the referenced gift naming the accepting repository.",
38 136
            "items": {
39 137
              "ref": "org.passingreads.signature.book#main",
40 138
              "type": "ref"
41 139
            },
42 -
            "minLength": 1,
140 +
            "minLength": 0,
43 141
            "type": "array"
44 142
          }
45 143
        },
46 144
        "required": [
47 145
          "book",
48 -
          "location",
49 146
          "signatures",
50 147
          "occurredAt"
51 148
        ],
52 149
        "type": "object"
53 150
      },
54 151
      "type": "record"
55 152
    },
56 153
    "osmLocation": {
57 154
      "description": "A physical location from OpenStreetMap.",
58 155
      "properties": {
59 156
        "category": {
60 157
          "description": "The type of place (e.g., cafe, library, park).",
61 158
          "type": "string"
62 159
        },
63 160
        "name": {
64 161
          "description": "The name of the place from OpenStreetMap.",
65 162
          "type": "string"
66 163
        },
67 164
        "osmId": {
68 165
          "description": "The OpenStreetMap element ID in interoperable format: N (node), W (way), or R (relation) prefix followed by numeric ID. Example: N123456789",
69 166
          "type": "string"
70 167
        },
71 168
        "value": {
72 169
          "description": "The H3 cell index for proximity queries.",
73 170
          "type": "string"
74 171
        }
75 172
      },
76 173
      "required": [
77 174
        "osmId",
78 175
        "name",
79 176
        "value"
80 177
      ],
81 178
      "type": "object"
82 179
    }
83 180
  },
84 181
  "id": "org.passingreads.book.event",
85 182
  "lexicon": 1
86 183
}

Compare Other Versions

Lexicon Garden

@