{
  "lexicon": 1,
  "id": "net.bisks.shelfguessr.guess",
  "defs": {
    "main": {
      "type": "record",
      "description": "One round of shelfguessr, recorded by the guesser after they picked an answer. `actual` is the real owner of the shelf photo shown; `guessed` is who the player clicked; `correct` is guessed === actual, denormalized for cheap replay. The network-wide /leaderboard standings are computed client-side by replaying every player's such records (listReposByCollection + Jetstream) into a correct/total tally — same recipe as sites/skymash's vote -> elo.js, just a plain count instead of Elo. Written and read by shelfguessr (https://shelfguessr.bisks.net).",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["actual", "guessed", "correct", "clusterSeed", "guessedAt"],
        "properties": {
          "actual": {
            "type": "string",
            "format": "did",
            "description": "DID of the shelf's real owner."
          },
          "guessed": {
            "type": "string",
            "format": "did",
            "description": "DID the player clicked as their guess."
          },
          "correct": {
            "type": "boolean",
            "description": "Whether guessed === actual, denormalized so the leaderboard replay doesn't need to compare strings."
          },
          "clusterSeed": {
            "type": "string",
            "format": "did",
            "description": "DID of the handle whose SimCluster this round was drawn from (self + mutuals) — not necessarily the player's own DID, since anyone can spectate any cluster."
          },
          "guessedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this guess was made, as an ISO 8601 datetime."
          }
        }
      }
    }
  }
}
