From
bafyreievpq63abuzxun65bavocjh5evsgw3ymwdk42g54c5xm5nurl6qsy
indexed 2026-05-24 15:22 UTC
View this version
To
bafyreicpbwbviblh2wiiwpwu3rmaszii5izh7k3tn7yglzhwx7e56e7ohi
indexed 2026-05-24 21:52 UTC
View this version
Compatibility
breaking 58 breaking changes, 0 non-breaking changes.
Breaking changes (58)
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.t0ronto.commons.entity:body", src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.name", kind: "prop", name: Some("name") }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.defs#alignment" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.defs#social" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant0" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant1" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant2" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant3" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.alignments" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.alignments:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.audience" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.audience:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.cadence" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.description" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.link" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.locatedIn" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.locatedIn:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.name" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.social" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.social:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.topics" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.topics:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.types" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.types:items" }
- RemovedVertex RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.updatedAt" }
- RemovedVertex RemovedVertex { vertex_id: "community.lexicon.location.address" }
- RemovedVertex RemovedVertex { vertex_id: "community.lexicon.location.fsq" }
- RemovedVertex RemovedVertex { vertex_id: "community.lexicon.location.geo" }
- RemovedVertex RemovedVertex { vertex_id: "community.lexicon.location.hthree" }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.addresses", kind: "prop", name: Some("addresses") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.alignments", kind: "prop", name: Some("alignments") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.audience", kind: "prop", name: Some("audience") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.cadence", kind: "prop", name: Some("cadence") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.description", kind: "prop", name: Some("description") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.link", kind: "prop", name: Some("link") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.locatedIn", kind: "prop", name: Some("locatedIn") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.social", kind: "prop", name: Some("social") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.topics", kind: "prop", name: Some("topics") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.types", kind: "prop", name: Some("types") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses", tgt: "com.t0ronto.commons.entity:body.addresses:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.alignments", tgt: "com.t0ronto.commons.entity:body.alignments:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.alignments:items", tgt: "com.t0ronto.commons.defs#alignment", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.audience", tgt: "com.t0ronto.commons.entity:body.audience:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.locatedIn", tgt: "com.t0ronto.commons.entity:body.locatedIn:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.social", tgt: "com.t0ronto.commons.entity:body.social:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.social:items", tgt: "com.t0ronto.commons.defs#social", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.topics", tgt: "com.t0ronto.commons.entity:body.topics:items", kind: "items", name: None }
- RemovedEdge RemovedEdge { src: "com.t0ronto.commons.entity:body.types", tgt: "com.t0ronto.commons.entity:body.types:items", kind: "items", name: None }
Migration guidance
Removed
RemovedVertex { vertex_id: "com.t0ronto.commons.defs#alignment" }RemovedVertex { vertex_id: "com.t0ronto.commons.defs#social" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant0" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant1" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant2" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.addresses:items:variant3" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.alignments" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.alignments:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.audience" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.audience:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.cadence" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.description" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.link" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.locatedIn" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.locatedIn:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.name" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.social" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.social:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.topics" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.topics:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.types" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.types:items" }RemovedVertex { vertex_id: "com.t0ronto.commons.entity:body.updatedAt" }RemovedVertex { vertex_id: "community.lexicon.location.address" }RemovedVertex { vertex_id: "community.lexicon.location.fsq" }RemovedVertex { vertex_id: "community.lexicon.location.geo" }RemovedVertex { vertex_id: "community.lexicon.location.hthree" }
Notes
- Breaking: RequiredEdgeRemoved { vertex_id: "com.t0ronto.commons.entity:body", src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.name", kind: "prop", name: Some("name") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.addresses", kind: "prop", name: Some("addresses") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.alignments", kind: "prop", name: Some("alignments") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.audience", kind: "prop", name: Some("audience") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.cadence", kind: "prop", name: Some("cadence") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.description", kind: "prop", name: Some("description") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.link", kind: "prop", name: Some("link") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.locatedIn", kind: "prop", name: Some("locatedIn") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.social", kind: "prop", name: Some("social") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.topics", kind: "prop", name: Some("topics") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.types", kind: "prop", name: Some("types") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body", tgt: "com.t0ronto.commons.entity:body.updatedAt", kind: "prop", name: Some("updatedAt") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses", tgt: "com.t0ronto.commons.entity:body.addresses:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items", tgt: "com.t0ronto.commons.entity:body.addresses:items:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.addresses:items:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.alignments", tgt: "com.t0ronto.commons.entity:body.alignments:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.alignments:items", tgt: "com.t0ronto.commons.defs#alignment", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.audience", tgt: "com.t0ronto.commons.entity:body.audience:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.locatedIn", tgt: "com.t0ronto.commons.entity:body.locatedIn:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.social", tgt: "com.t0ronto.commons.entity:body.social:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.social:items", tgt: "com.t0ronto.commons.defs#social", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.topics", tgt: "com.t0ronto.commons.entity:body.topics:items", kind: "items", name: None }
- Breaking: RemovedEdge { src: "com.t0ronto.commons.entity:body.types", tgt: "com.t0ronto.commons.entity:body.types:items", kind: "items", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {5
"description": "An entry in the t0ronto data commons: an organization, programme, venue, neighbourhood, or other community-relevant thing. Polymorphic — what kind of thing an entity is is declared via `types[]` (P31-style references to com.t0ronto.commons.concept records), not by which collection it lives in. An entity can declare multiple types and surface in multiple buckets simultaneously: CONTACT, for example, declares itself both an organization and a festival.",6
"key": "tid",5
"description": "An anchor in the t0ronto data commons: a bare, claim-free identity for a thing — an organization, programme, venue, neighbourhood, or a vocabulary concept. The anchor holds NO properties of its own. Everything true of it — name, type, topics, location, prefLabel, broader, alignments — is asserted by separate com.t0ronto.commons.statement records, which may be authored by many different DIDs. The anchor exists only to mint a stable, resolvable identity that statements point at. Whether an anchor denotes a real-world thing or a vocabulary concept is itself an attestation (an `instanceOf` statement, e.g. instanceOf skos:Concept), not a property of this record or of which collection it lives in. The rkey IS the entity's stable identifier: a UUIDv7 for real-world things (mapping 1:1 to the public URL t0ronto.ca/e/<uuid>) or a curated slug for vocabulary concepts (e.g. at://<did>/com.t0ronto.commons.entity/music).",6
"key": "any",77
"record": {88
"properties": {9
"addresses": {10
"description": "Physical location(s). Multiple shapes are allowed and can coexist — a postal address plus coordinates plus a Foursquare POI ID, for example. All shapes are defined by the community.lexicon.location.* vocabulary, deliberately reused rather than redefined.",11
"items": {12
"refs": [13
"community.lexicon.location.address",14
"community.lexicon.location.geo",15
"community.lexicon.location.fsq",16
"community.lexicon.location.hthree"17
],18
"type": "union"19
},20
"type": "array"21
},22
"alignments": {23
"description": "Cross-vocabulary alignments to external authorities (LCNAF, Wikidata, GeoNames, etc.).",24
"items": {25
"ref": "com.t0ronto.commons.defs#alignment",26
"type": "ref"27
},28
"type": "array"29
},30
"audience": {31
"description": "References to com.t0ronto.commons.concept records with sub='audience'. Communities this entity is about, serves, or attracts.",32
"items": {33
"format": "at-uri",34
"type": "string"35
},36
"type": "array"37
},38
"cadence": {39
"description": "Frequency of operation (P2257-style). Single-valued reference to a com.t0ronto.commons.concept record with sub='cadence'.",40
"format": "at-uri",41
"type": "string"42
},439
"createdAt": {44
"description": "Client-declared timestamp when the record was first authored.",45
"format": "datetime",46
"type": "string"47
},48
"description": {49
"description": "One- to several-sentence description in the local language. Plain text, no markup.",50
"maxGraphemes": 2000,51
"type": "string"52
},53
"link": {54
"description": "Primary canonical URL for the entity (its official site).",55
"format": "uri",56
"type": "string"57
},58
"locatedIn": {59
"description": "P131-style references to other com.t0ronto.commons.entity records this one is geographically located in — typically neighbourhoods, boroughs, cities, or container venues. Multi-valued: a gallery can be located in a community centre AND a neighbourhood at the same time.",60
"items": {61
"format": "at-uri",62
"type": "string"63
},64
"type": "array"65
},66
"name": {67
"description": "Display name of the entity.",68
"maxGraphemes": 256,69
"minGraphemes": 1,70
"type": "string"71
},72
"social": {73
"description": "Social-platform presences. See com.t0ronto.commons.defs#social for per-platform value contract — note that bluesky values are DIDs, not URLs.",74
"items": {75
"ref": "com.t0ronto.commons.defs#social",76
"type": "ref"77
},78
"type": "array"79
},80
"topics": {81
"description": "P921-style 'main subject' references to com.t0ronto.commons.concept records with sub='topic'. What this entity is about.",82
"items": {83
"format": "at-uri",84
"type": "string"85
},86
"type": "array"87
},88
"types": {89
"description": "P31-style 'instance of' references to com.t0ronto.commons.concept records with sub='type'. Multi-valued — an entity can declare itself multiple kinds simultaneously.",90
"items": {91
"format": "at-uri",92
"type": "string"93
},94
"type": "array"95
},96
"updatedAt": {97
"description": "Client-declared timestamp when the record was last updated.",10
"description": "Client-declared timestamp when this identity was minted. The only field on an anchor — by design it carries no claims; claims live in statement records that reference this anchor's at-uri.",9811
"format": "datetime",9912
"type": "string"10013
}10114
},10215
"required": [103
"name",10416
"createdAt"10517
],10618
"type": "object"10719
},10820
"type": "record"10921
}11022
},11123
"id": "com.t0ronto.commons.entity",11224
"lexicon": 111325
}