{
"id": "at.turtleme.game.defs",
"defs": {
"net": {
"type": "object",
"properties": {
"setAt": {
"type": "string",
"format": "datetime"
},
"holding": {
"type": "integer",
"minimum": 0,
"description": "What the net would yield if hauled now. A readout for drawing, not a promise: nothing is banked until it is hauled, and the server works the figure out again at that point."
}
},
"description": "The drift net, when it is in the water. Absent when it is not."
},
"skill": {
"type": "object",
"required": [
"xp"
],
"properties": {
"xp": {
"type": "integer",
"minimum": 0
}
}
},
"state": {
"type": "object",
"required": [
"did",
"seq",
"proof"
],
"properties": {
"did": {
"type": "string",
"format": "did"
},
"net": {
"ref": "#net",
"type": "ref"
},
"seq": {
"type": "integer",
"minimum": 0,
"description": "Increases whenever the state changes, and never otherwise. Publishing a receipt whose sequence has already been counted is a no-op rather than an error."
},
"proof": {
"type": "string",
"maxLength": 4096,
"description": "A compact JWS over these figures, signed by turtle meat. Writing it into at.turtleme.player.state is what puts a player on the leaderboard; not writing it is how they stay off."
},
"stats": {
"type": "unknown",
"description": "Lifetime tallies."
},
"cooking": {
"ref": "#skill",
"type": "ref"
},
"fishing": {
"ref": "#skill",
"type": "ref"
}
},
"description": "A player's progress as the server holds it, with a receipt for publishing it. Every method returns this, so that a client always leaves a call holding something it can write to its own repository."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}