{
  "lexicon": 1,
  "id": "net.bisks.paintmoot.board",
  "defs": {
    "main": {
      "type": "record",
      "description": "A shared MS-Paint-style canvas, created by one person and drawn on by them plus their mutual-follow \"moots\". One record per board — the record key is server-generated (TID), and marks (net.bisks.paintmoot.mark) reference this record's AT-URI in their `board` field. Written and read by paintmoot (https://paintmoot.bisks.net).",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["title", "width", "height", "background", "createdAt"],
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 300,
            "maxGraphemes": 100,
            "description": "The board's display title, e.g. \"doodle jam\". Defaults to \"untitled board\" client-side if left blank. The create-board input has no length limit of its own, so this is a generous guessed cap, not one enforced by the UI."
          },
          "width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 4000,
            "description": "Canvas width in board-space pixels. The create-board UI only offers three presets (480, 800, 1000) via a <select>, but the field itself isn't otherwise constrained, so the bound here is a generous cap rather than the exact preset list."
          },
          "height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 4000,
            "description": "Canvas height in board-space pixels. Paired with `width` from the same size preset (360, 600, or 700 in the current UI); see `width` for why the bound is generous rather than exact."
          },
          "background": {
            "type": "string",
            "maxLength": 20,
            "description": "The board's fill color as a CSS hex string (e.g. \"#ffffff\"), from the create-board color picker. Also used as the implicit eraser color when drawing marks."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this board was created, as an ISO 8601 datetime."
          }
        }
      }
    }
  }
}
