{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://abyss.keyboard-hub.com/schemas/keyboard/v1.json",
  "title": "KeyboardHubKeyboard",
  "description": "KeyboardHub keyboard format v1. A complete keyboard export is the selected physical layout plus the keymap that targets it.",
  "type": "object",
  "required": ["$schema", "layout", "keymap"],
  "additionalProperties": false,
  "properties": {
    "$schema": {
      "type": "string",
      "const": "https://abyss.keyboard-hub.com/schemas/keyboard/v1.json",
      "description": "Canonical JSON Schema URI for KeyboardHubKeyboard v1."
    },
    "layout": {
      "$ref": "https://abyss.keyboard-hub.com/schemas/keyboard-layout/v1.json",
      "description": "Physical layout definition: key positions, modules, features, and firmware layout metadata."
    },
    "keymap": {
      "$ref": "https://abyss.keyboard-hub.com/schemas/keymap/v1.json",
      "description": "Functional keymap definition whose layer bindings are ordered by layout.positions."
    }
  }
}
