{
  "lexicon": 1,
  "id": "net.bisks.numbergrid.number",
  "defs": {
    "main": {
      "type": "record",
      "description": "One number a person has personally spotted, added to their numbergrid board. The client (public/app.js's submitNumber) only accepts whole numbers matching /^\\d+$/ that pass Number.isSafeInteger, so zero or positive integers up to Number.MAX_SAFE_INTEGER — there is no declared upper bound beyond that. One record per distinct value; the client dedupes client-side against listRecords before writing, but nothing server-side stops duplicates or negative/fractional values from being written directly. Written by an authenticated user to their own repo; read unauthenticated (com.atproto.repo.listRecords) both for the signed-in user's own board and for anyone else's public board view. Written and read by numbergrid (https://numbergrid.bisks.net).",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["value", "createdAt"],
        "properties": {
          "value": {
            "type": "integer",
            "minimum": 0,
            "description": "The number spotted, as a non-negative whole number. The client only ever submits values that pass Number.isSafeInteger; the board's mex/grid math (lib/board.js) also discards any record whose value isn't a non-negative integer when reading."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this number was added, as an ISO 8601 datetime. Used to pick the earliest record if the same value is ever written more than once."
          }
        }
      }
    }
  }
}
