app.kalangitan.location.snapshot
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"geo": {
"description": "Shared location shape, referenced by feed.post, feed.note, feed.story, and location.snapshot. Coordinates must already be coarsened to the persona's configured precision before the record is written — the precision field records which level was applied.",
"properties": {
"label": {
"description": "Optional human-readable place name.",
"maxGraphemes": 256,
"maxLength": 256,
"type": "string"
},
"latitude": {
"description": "Latitude in E7 microdegrees (degrees x 10^7), i.e. 145995000 = 14.5995N. The atproto data model has no float type, so coordinates are signed fixed-point integers.",
"maximum": 900000000,
"minimum": -900000000,
"type": "integer"
},
"longitude": {
"description": "Longitude in E7 microdegrees (degrees x 10^7).",
"maximum": 1800000000,
"minimum": -1800000000,
"type": "integer"
},
"precision": {
"description": "exact: precise point. neighborhood: coarsened to ~1km. city: coarsened to city centroid/extent.",
"knownValues": [
"exact",
"neighborhood",
"city"
],
"type": "string"
}
},
"required": [
"latitude",
"longitude",
"precision"
],
"type": "object"
},
"main": {
"description": "A discrete \"here's where I was\" location record — a snapshot, like any other post. Contrast with app.kalangitan.location.live, which is a single continuously-overwritten record. Belongs to a persona via profileUri; the persona's location.visibility defaults govern whether snapshots are recorded at all and at what precision.",
"key": "tid",
"record": {
"properties": {
"capturedAt": {
"description": "When the location was actually captured by the device.",
"format": "datetime",
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"geo": {
"ref": "app.kalangitan.location.snapshot#geo",
"type": "ref"
},
"profileUri": {
"description": "AT-URI of the app.kalangitan.actor.profile record this snapshot belongs to.",
"format": "at-uri",
"type": "string"
}
},
"required": [
"profileUri",
"geo",
"capturedAt",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "app.kalangitan.location.snapshot",
"lexicon": 1
}
Metadata
- DID
-
did:plc:c5jrjgenhqjjaoxbkrnqg2bh - CID
-
bafyreih5exzj4j344dlkequhxyi2f6d7czobgwej5bcyo5lwotegr36iqq - Indexed At
- 2026-09-28 11:29 UTC
- AT-URI
-
at://did:plc:c5jrjgenhqjjaoxbkrnqg2bh/com.atproto.lexicon.schema/app.kalangitan.location.snapshot
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Live location: a single continuously-overwritten record, NOT a growing collection. Belongs to a persona via profileUri; near-real-time updates are feasible because Spaces support direct PDS-to-PDS sync without a relay, …
-
Per-persona location defaults: whether location is shared at all (mode) and at what granularity (precision). These defaults keep posting low-friction. Location behavior is configured once per persona, not per post. CONV…
-
A standard post. Location is a required part of every record in this app, not an optional tag. Belongs to exactly one persona via profileUri; the persona's location.visibility defaults govern how the location is stored …
-
app.certified.location record
A location reference
-
A short, lightweight status note. Location is optional. Belongs to exactly one persona via profileUri. For a gated persona this record lives inside the persona's Space; Spaces provide access control, not confidentiality.