pet.trezy.claimAwards
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"award": {
"properties": {
"badge": {
"description": "The achievement's stable id — `first-pet`, `group-bats`. The same string is the `name` on the badge definition and the rkey of both the definition and the award.",
"type": "string"
},
"earnedAt": {
"description": "The FIRST moment the ledger saw this as true, not the moment it was published. A badge is a record of a moment; re-running the evaluation never moves this.",
"format": "datetime",
"type": "string"
},
"state": {
"description": "Where the repo copy stands. `written` was published by this call, `held` was already published, `unpublished` could not be written — usually because the caller has not granted the collection, which costs them nothing but the portable copy.",
"knownValues": [
"written",
"held",
"unpublished"
],
"type": "string"
}
},
"required": [
"badge",
"earnedAt"
],
"type": "object"
},
"main": {
"description": "Publishes the badges the awards ledger says the caller has earned into the caller's own repo, as `community.lexicon.badge.award` records, and answers with everything they hold. Called on sign-in and after anything that might have earned one. It decides nothing: `job.run:games.achievements` owns that, and this only copies what is already recorded — so calling it twice writes nothing the second time, and calling it can never award anything.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"awards": {
"description": "Every badge the caller has earned, oldest first. Present whether or not the repo copy could be written — the ledger is the truth and the record is a publication of it.",
"items": {
"ref": "#award",
"type": "ref"
},
"type": "array"
},
"error": {
"description": "Present instead of a result. `awards-unavailable` means the ledger could not be read, which must NOT be shown as an empty shelf — a caller that took it that way would tell somebody they had earned nothing.",
"knownValues": [
"awards-unavailable",
"no-caller"
],
"type": "string"
},
"message": {
"type": "string"
},
"written": {
"description": "How many repo copies this call wrote. Zero is the ordinary answer on a return visit.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"awards"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "pet.trezy.claimAwards",
"lexicon": 1
}
Metadata
- DID
-
did:plc:ollch4g7tes2reb5eceiwuol - CID
-
bafyreig3kqx6zvtyyxsja6pn6blfdtxd5ghlmtcpolpoe3vy7b4a2eo6fq - Indexed At
- 2026-08-11 12:46 UTC
- AT-URI
-
at://did:plc:ollch4g7tes2reb5eceiwuol/com.atproto.lexicon.schema/pet.trezy.claimAwards
Version History (2 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
pet.trezy.achievement record
How a badge is earned. Published to the game's repo, one per achievement, alongside the `community.lexicon.badge.definition` it points at. The split is deliberate: the DEFINITION is the portable, standard artefact any …