diff options
Diffstat (limited to 'data/schemas')
-rw-r--r-- | data/schemas/definitions.jsonschema | 37 | ||||
-rw-r--r-- | data/schemas/keyboard.jsonschema | 108 | ||||
-rw-r--r-- | data/schemas/keymap.jsonschema | 5 |
3 files changed, 90 insertions, 60 deletions
diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index 1bdfbbeb03..2cf76a351c 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.definitions.v1", "title": "Common definitions used across QMK's jsonschemas.", "type": "object", @@ -65,8 +65,7 @@ ] }, "key_unit": { - "type": "number", - "min": 0.25 + "type": "number" }, "keyboard": { "oneOf": [ @@ -103,8 +102,7 @@ "pattern": "^LINE_PIN\\d{1,2}$" }, { - "type": "number", - "multipleOf": 1 + "type": "integer" }, { "type": "null" @@ -115,14 +113,12 @@ "type": "number" }, "signed_int": { - "type": "number", - "multipleOf": 1 + "type": "integer" }, "signed_int_8": { - "type": "number", - "min": -127, - "max": 127, - "multipleOf": 1 + "type": "integer", + "minimum": -127, + "maximum": 127 }, "string_array": { "type": "array", @@ -138,17 +134,20 @@ }, "unsigned_decimal": { "type": "number", - "min": 0 + "minimum": 0 }, "unsigned_int": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 }, "unsigned_int_8": { - "type": "number", - "min": 0, - "max": 255, - "multipleOf": 1 + "type": "integer", + "minimum": 0, + "maximum": 255 + }, + "bit": { + "type": "integer", + "minimum": 0, + "maximum": 1 } } diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index fd60920578..8d9fc4754d 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -1,7 +1,27 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.keyboard.v1", "title": "Keyboard Information", + "definitions": { + "encoder_config": { + "type": "object", + "properties": { + "rotary": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": ["pin_a", "pin_b"], + "properties": { + "pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"} + } + } + } + } + } + }, "type": "object", "properties": { "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, @@ -40,12 +60,12 @@ "breathing": {"type": "boolean"}, "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "levels": { - "type": "number", - "min": 1, - "max": 31, - "multipleOf": 1 + "type": "integer", + "minimum": 1, + "maximum": 31 }, - "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"} + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "on_state": {"$ref": "qmk.definitions.v1#/bit"} } }, "bluetooth": { @@ -113,13 +133,22 @@ "type": "array", "items": {"$ref": "qmk.definitions.v1#/filename"} }, + "encoder": { + "$ref": "#/definitions/encoder_config", + "properties": { + "enabled": {"type": "boolean"} + } + }, "features": {"$ref": "qmk.definitions.v1#/boolean_array"}, "indicators": { "type": "object", "properties": { "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"} + "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "compose": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "kana": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "on_state": {"$ref": "qmk.definitions.v1#/bit"} } }, "layout_aliases": { @@ -154,12 +183,11 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } }, - "r": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, + "r": {"$ref": "qmk.definitions.v1#/signed_decimal"}, "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "h": {"$ref": "qmk.definitions.v1#/key_unit"}, @@ -230,14 +258,13 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } }, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}, - "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} + "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } } @@ -258,14 +285,13 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } }, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}, - "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} + "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } } @@ -290,10 +316,9 @@ "blink": {"type": "boolean"}, "enabled": {"type": "boolean"}, "max": { - "type": "number", - "min": 1, - "max": 32, - "multipleOf": 1 + "type": "integer", + "minimum": 1, + "maximum": 32 }, "override_rgb": {"type": "boolean"} } @@ -307,8 +332,8 @@ "split": {"type": "boolean"}, "split_count": { "type": "array", - "minLength": 2, - "maxLength": 2, + "minItems": 2, + "maxItems": 2, "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } @@ -322,16 +347,15 @@ "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "unlock_sequence": { "type": "array", - "minLength": 1, - "maxLength": 5, + "minItems": 1, + "maxItems": 5, "items": { "type": "array", "minItems": 2, "maxItems": 2, "items": { - "type": "number", - "min": 0, - "multipleOf": 1 + "type": "integer", + "minimum": 0 } } } @@ -365,16 +389,24 @@ } } }, + "encoder": { + "type": "object", + "additionalProperties": false, + "properties": { + "right": { + "$ref": "#/definitions/encoder_config" + } + } + }, "main": { "type": "string", "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { - "type": "number", - "min": 0, - "max": 5, - "multipleOf": 1 + "type": "integer", + "minimum": 0, + "maximum": 5 }, "transport": { "type": "object", @@ -428,7 +460,7 @@ "force_nkro": {"type": "boolean"}, "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, - "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "no_startup_check": {"type": "boolean"}, "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "shared_endpoint": { @@ -439,7 +471,7 @@ "mouse": {"type": "boolean"} } }, - "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "wait_for": {"type": "boolean"}, } }, @@ -448,8 +480,8 @@ "additionalProperties": false, "properties": { "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, } }, "qmk_lufa_bootloader": { diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 3803301a66..92a1ce533d 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.keymap.v1", "title": "Keymap Information", "type": "object", @@ -50,8 +50,7 @@ }, "config": {"$ref": "qmk.keyboard.v1"}, "notes": { - "type": "string", - "description": "asdf" + "type": "string" } }, "required": [ |