{
  "lexicon": 1,
  "id": "net.bisks.shelfguessr.shelf",
  "defs": {
    "main": {
      "type": "record",
      "description": "One person's bookshelf photo on shelfguessr — a GeoGuessr-style guessing game played over a handle's SimCluster (self + mutuals). Singleton per repo, written via putRecord create-or-update at rkey \"self\". Read network-wide (listReposByCollection + Jetstream) and filtered down to whichever SimCluster is currently being played to build a round's candidate pool. Written and read by shelfguessr (https://shelfguessr.bisks.net).",
      "key": "literal:self",
      "record": {
        "type": "object",
        "required": ["photo", "updatedAt"],
        "properties": {
          "photo": {
            "type": "blob",
            "accept": ["image/*"],
            "description": "The bookshelf photo, uploaded via com.atproto.repo.uploadBlob before saving this record. No client-side size cap beyond the PDS's own blob limits."
          },
          "caption": {
            "type": "string",
            "maxLength": 600,
            "maxGraphemes": 140,
            "description": "Optional free-text note about the shelf, revealed to guessers only after they've guessed (so it isn't a giveaway hint mid-round)."
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this shelf photo was last saved, as an ISO 8601 datetime."
          }
        }
      }
    }
  }
}
