games.atmosphere.define
A portable AT Protocol record for declaring a game and the records it uses.
Purpose
A definition identifies a game, its publisher, where to access it, and which AT Protocol records it requires or uses. Portals can use definitions to discover games and explain their compatibility.
Publish
Publish one record for each game in the developer's own repository. Keep its rkey stable when updating it.
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
The DID is the only durable identity anchor. When you self-publish (the normal case), publisher already is your DID, so developer is purely cosmetic display text and nothing else needs to reference it.
Records held on a developer's behalf — for example, atmosphere.games seeding a listing before the developer has published their own — must set developer.did to the real developer's DID. That DID is what lets the real developer claim the record and is resolved back to their current handle automatically, even after they rename. developer.name/developer.url are display text only; they are never trusted to authorize a claim and go stale silently if the account renames without developer.did set. A held record with no developer.did at all cannot be claimed by anyone.
claimAllowed can list extra DIDs or handles (besides developer.did) permitted to claim a held record. Prefer DIDs there too — a bare handle is only resolved best-effort and breaks if that account renames.
Discovery
Games publish their own definitions. Directories and clients can discover them through AT Protocol repository events, including Jetstream and the firehose.
Basic Example
A simplified version of the real Clun's Cannon definition record.
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/atmosphere.games/lexicons.