at.turtleme.player.status

turtleme.at

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "afloat": {
      "description": "The player has the game open but is not doing anything in particular.",
      "type": "token"
    },
    "cooking": {
      "description": "The player is at the range.",
      "type": "token"
    },
    "fishing": {
      "description": "The player is fishing, by any of the four methods.",
      "type": "token"
    },
    "main": {
      "description": "A declaration that an account plays turtle meat, and optionally that it is playing right now. Written by the player's own client and not verified by anyone: nothing here affects scoring, so there is nothing to gain by lying in it. Progress that does affect scoring lives in at.turtleme.player.state, which carries a signature.",
      "key": "literal:self",
      "record": {
        "properties": {
          "activity": {
            "description": "What the player is doing. Absent means they are not declaring a live session, only that they play.",
            "knownValues": [
              "at.turtleme.player.status#afloat",
              "at.turtleme.player.status#fishing",
              "at.turtleme.player.status#cooking"
            ],
            "type": "string"
          },
          "createdAt": {
            "description": "When the declaration was written. Client-declared and unverified.",
            "format": "datetime",
            "type": "string"
          },
          "durationMinutes": {
            "description": "How long the declared activity should be believed for, counted from createdAt. Presence expires rather than being switched off, because a browser tab that closes badly never gets to write the record that would clear it. A reader treats the player as present only while createdAt plus this duration is still in the future.",
            "maximum": 1440,
            "minimum": 1,
            "type": "integer"
          },
          "ranked": {
            "description": "Whether the player wants to appear on the public leaderboard. This is a request rather than a setting: what actually puts someone on the board is having published at.turtleme.player.state, and deleting that record removes them regardless of what this says.",
            "type": "boolean"
          }
        },
        "required": [
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "at.turtleme.player.status",
  "lexicon": 1
}

Validate Record

Validate a record against at.turtleme.player.status

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:f4h4tl43o4vx4hv2xps6siuz
CID
bafyreie7gkhavwirha36v523knmpurftohnmk44nr6ht4okykvsfnbdunq
Indexed At
2026-09-14 19:34 UTC
AT-URI
at://did:plc:f4h4tl43o4vx4hv2xps6siuz/com.atproto.lexicon.schema/at.turtleme.player.status

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • One adjudicated session of play, published by the player as a public trail of how their progress was earned. The leaderboard does not need these records; at.turtleme.player.state alone is enough to rank someone. They ex…

  • A player's game progress, as adjudicated by turtle meat and published by the player. The record lives in the player's own repository and can be deleted by them at any time, which removes them from the public leaderboard…

  • A declaration of a at://2048 player's profile

Lexicon Garden

@