Game Lexicons
Portable AT Protocol schemas for games and live status.
games.atmosphere.define
Purpose
Identifies a game: its publisher, where to play it, and the AT Protocol records it needs or uses.
Publish
Publish one record per game in the developer's own repository, and keep its record key stable across updates.
name,url,publisher,category, andcreatedAtare required.publishermust be the AT-URI of the repository publishing the record.requiresdeclares compatibility gates;usesdeclares optional integrations.catalogandlegacyIdsmay link the same game across other catalogs.
Developer identity
A DID is the durable identity behind a game record. When a developer self-publishes, publisher is already their DID, so developer is display text only. When a listing is held on a developer's behalf, developer.did should be set to their real DID.
Discovery
Once published, a definition is discoverable directly from AT Protocol repository events, such as Jetstream and the firehose.
Basic Example
A simplified version of the real Clun's Cannon definition record. It requires an actor.rpg.sprite to play, and uses a Jet Pack .item vouched for by protoimsg.app.
{
"$type": "games.atmosphere.define",
"name": "Clun's Cannon",
"url": "https://rpg.actor/cannon",
"publisher": "at://did:plc:kwgllf365cwmxbnxitx4pjdj",
"category": "browser",
"status": "live",
"createdAt": "2026-07-17T14:54:25.448Z",
"requires": [{
"check": "record",
"nsid": "actor.rpg.sprite",
"label": "Your character sprite",
"acquire": "https://rpg.actor/generator"
}],
"uses": [{
"role": "perk",
"nsid": "equipment.rpg.item",
"purpose": "Owning a Jet Pack offers an extra boost when launched",
"acquire": "https://protoimsg.app/games",
"verify": {
"check": "vouch",
"nsid": "equipment.rpg.item",
"authority": "did:plc:ew5e3up4h2jf4j263qhdjo4e",
"filters": [
{ "field": "item", "op": "eq", "value": "jet_pack" },
{ "field": "recipient", "op": "isPlayer" }
]
}
}]
}
Compatibility Rules
record,field, andmatchesinspect player records.vouchchecks a trusted authority's repository.all,any, andnotcompose rules.- Unknown checks must fail. Optional
usesnever block play.
Schema
The JSON schema is available at /lexicons/games.atmosphere.define.json. Its public source and documentation are maintained at tangled.org/beta.atmosphere.games/lexicons.
games.atmosphere.status
Purpose
A record of live game activity, one per account. Portals and social clients use it to show what someone is playing right now.
Publish
Write one record per account and keep it updated while the session is active.
game,createdAt, andstaleAtare required.gameis an AT-URI to the game being played. Any game catalog works, not justgames.atmosphere.define.platformis an optional AT-URI to a platform or storefront record.staleAtshould be refreshed every 5–15 minutes while the session continues. Consumers treat the record as abandoned once it passes.vianames the client managing the record, so multiple launchers can update the same account without overwriting each other.
Consent and privacy
Publish only with the account owner's consent. The record is meant to describe an active session, not a hidden or covert state.
Use playing.party.dids only for participants who agreed to be shown. For basic party counts, prefer current and max.
Basic Example
An active multiplayer session in Clun's Cannon, with a party of two.
{
"$type": "games.atmosphere.status",
"game": "at://did:plc:kwgllf365cwmxbnxitx4pjdj/games.atmosphere.define/cluns-cannon",
"state": "4-player game",
"details": {
"event": "Round 3 of 5",
"startedAt": "2026-09-16T20:10:00.000Z"
},
"playing": {
"id": "launch-party-9f2",
"party": { "current": 2, "max": 4 }
},
"embed": {
"$type": "app.bsky.embed.external",
"external": {
"uri": "https://rpg.actor/cannon",
"title": "Clun's Cannon",
"description": "Get launched into the atmosphere!"
}
},
"createdAt": "2026-09-16T20:05:00.000Z",
"staleAt": "2026-09-16T20:25:00.000Z",
"via": "beta.atmosphere.games"
}
Schema
The JSON schema is available at /lexicons/games.atmosphere.status.json. It is proposed for community stewardship at tangled.org/beta.atmosphere.games/lexicons and remains a draft until the working group settles on it.