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