at.turtleme.game.session

turtleme.at

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "castAndStrike": {
      "description": "The timing bar, where striking in the green window lands a turtle.",
      "type": "token"
    },
    "driftNet": {
      "description": "The net that fills on its own in real time, including while the page is closed.",
      "type": "token"
    },
    "main": {
      "description": "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 exist so that progress can be read as a history rather than a number, and so other clients have something to render. Written per session rather than per catch, which keeps a player's repository from growing without limit.",
      "key": "tid",
      "record": {
        "properties": {
          "burnt": {
            "minimum": 0,
            "type": "integer"
          },
          "caught": {
            "minimum": 0,
            "type": "integer"
          },
          "cooked": {
            "minimum": 0,
            "type": "integer"
          },
          "cookingXp": {
            "minimum": 0,
            "type": "integer"
          },
          "endedAt": {
            "format": "datetime",
            "type": "string"
          },
          "fishingXp": {
            "minimum": 0,
            "type": "integer"
          },
          "methods": {
            "description": "Which ways of fishing were used.",
            "items": {
              "knownValues": [
                "at.turtleme.game.session#spot",
                "at.turtleme.game.session#castAndStrike",
                "at.turtleme.game.session#driftNet",
                "at.turtleme.game.session#reef"
              ],
              "type": "string"
            },
            "maxLength": 4,
            "type": "array"
          },
          "proof": {
            "description": "A compact JWS signed by turtle meat carrying the authoritative account of the session. As with at.turtleme.player.state, this is the only field that counts and the rest are a transcription.",
            "maxLength": 4096,
            "type": "string"
          },
          "startedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "proof",
          "startedAt",
          "endedAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "reef": {
      "description": "The minesweeper reef, swept for a dozing shoal.",
      "type": "token"
    },
    "spot": {
      "description": "The wandering fishing spot, fished on a four-tick cadence.",
      "type": "token"
    }
  },
  "id": "at.turtleme.game.session",
  "lexicon": 1
}

Validate Record

Validate a record against at.turtleme.game.session

Validation Options
Treat any remaining unresolved references as valid

Metadata

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

Similar Lexicons

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

  • 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 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 l…

  • A run of strikes. The seed every window is drawn from, the level the run opened at and the marker's state are all turtle meat's, so a client can draw the bar to the millisecond without being able to widen it, slow it or…

Lexicon Garden

@