org.passingreads.book.event

passingreads.org

Schema Diff

+106 -19

From

CID
bafyreiaxtu6qywb...
Indexed At
2026-04-06 07:09 UTC
View this version

To

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

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
}

Compare Other Versions

Lexicon Garden

@