at.turtleme.game.session

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.

Repository @turtleme.at did:plc:f4h4tl43o4vx4hv2xps6siuz namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authoritygame.turtleme.at
Indexed
cid bafyreidsnp7alw3uezwz2gtsh6e6eincwr43edxtg2lethfos6yrkvqveq

Checks

Valid
  • unlimited-string defs.main.record.properties.methods.itemsNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$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
}