{
"id": "com.t0ronto.commons.entity",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"createdAt"
],
"properties": {
"link": {
"type": "string",
"format": "uri",
"description": "Primary canonical URL for the entity (its official site)."
},
"name": {
"type": "string",
"description": "Display name of the entity.",
"maxGraphemes": 256,
"minGraphemes": 1
},
"types": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"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."
},
"social": {
"type": "array",
"items": {
"ref": "com.t0ronto.commons.defs#social",
"type": "ref"
},
"description": "Social-platform presences. See com.t0ronto.commons.defs#social for per-platform value contract — note that bluesky values are DIDs, not URLs."
},
"topics": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"description": "P921-style 'main subject' references to com.t0ronto.commons.concept records with sub='topic'. What this entity is about."
},
"cadence": {
"type": "string",
"format": "at-uri",
"description": "Frequency of operation (P2257-style). Single-valued reference to a com.t0ronto.commons.concept record with sub='cadence'."
},
"audience": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"description": "References to com.t0ronto.commons.concept records with sub='audience'. Communities this entity is about, serves, or attracts."
},
"addresses": {
"type": "array",
"items": {
"refs": [
"community.lexicon.location.address",
"community.lexicon.location.geo",
"community.lexicon.location.fsq",
"community.lexicon.location.hthree"
],
"type": "union"
},
"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."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when the record was first authored."
},
"locatedIn": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"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."
},
"updatedAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when the record was last updated."
},
"alignments": {
"type": "array",
"items": {
"ref": "com.t0ronto.commons.defs#alignment",
"type": "ref"
},
"description": "Cross-vocabulary alignments to external authorities (LCNAF, Wikidata, GeoNames, etc.)."
},
"description": {
"type": "string",
"description": "One- to several-sentence description in the local language. Plain text, no markup.",
"maxGraphemes": 2000
}
}
},
"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."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}