org.passingreads.book.event

passingreads.org

Schema Diff

+1 -4

From

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

To

CID
bafyreihmn6sjqcd...
Indexed At
2026-09-10 16:07 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 0 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeRemoved RequiredEdgeRemoved { 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") }

Migration Guidance

Additional Notes

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

Compare Other Versions

Lexicon Garden

@