|
|
@ -3,10 +3,25 @@ |
|
|
|
"$id": "qmk.definitions.v1", |
|
|
|
"title": "Common definitions used across QMK's jsonschemas.", |
|
|
|
"type": "object", |
|
|
|
"bcd_version": { |
|
|
|
"type": "string", |
|
|
|
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$" |
|
|
|
}, |
|
|
|
"bit": { |
|
|
|
"type": "integer", |
|
|
|
"minimum": 0, |
|
|
|
"maximum": 1 |
|
|
|
}, |
|
|
|
"boolean_array": { |
|
|
|
"type": "object", |
|
|
|
"additionalProperties": {"type": "boolean"} |
|
|
|
}, |
|
|
|
"build_target": { |
|
|
|
"oneOf": [ |
|
|
|
{"$ref": "#/keyboard_keymap_tuple"}, |
|
|
|
{"$ref": "#/json_file_path"} |
|
|
|
] |
|
|
|
}, |
|
|
|
"filename": { |
|
|
|
"type": "string", |
|
|
|
"minLength": 1, |
|
|
@ -20,18 +35,56 @@ |
|
|
|
"type": "string", |
|
|
|
"pattern": "^0x[0-9A-F]{4}$" |
|
|
|
}, |
|
|
|
"bcd_version": { |
|
|
|
"json_file_path": { |
|
|
|
"type": "string", |
|
|
|
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$" |
|
|
|
"pattern": "^[0-9a-z_/\\-]+\\.json$" |
|
|
|
}, |
|
|
|
"text_identifier": { |
|
|
|
"key_unit": { |
|
|
|
"type": "number" |
|
|
|
}, |
|
|
|
"keyboard": { |
|
|
|
"type": "string", |
|
|
|
"minLength": 1, |
|
|
|
"maxLength": 250 |
|
|
|
"pattern": "^[0-9a-z][0-9a-z_/]*$" |
|
|
|
}, |
|
|
|
"snake_case": { |
|
|
|
"keyboard_keymap_tuple": { |
|
|
|
"type": "array", |
|
|
|
"prefixItems": [ |
|
|
|
{"$ref": "#/keyboard"}, |
|
|
|
{"$ref": "#/filename"} |
|
|
|
], |
|
|
|
"unevaluatedItems": false |
|
|
|
}, |
|
|
|
"keycode": { |
|
|
|
"type": "string", |
|
|
|
"pattern": "^[a-z][a-z0-9_]*$" |
|
|
|
"minLength": 2, |
|
|
|
"maxLength": 50, |
|
|
|
"pattern": "^[A-Z][A-Zs_0-9]*$" |
|
|
|
}, |
|
|
|
"keycode_decl": { |
|
|
|
"type": "object", |
|
|
|
"required": [ |
|
|
|
"key" |
|
|
|
], |
|
|
|
"properties": { |
|
|
|
"key": {"$ref": "#/keycode"}, |
|
|
|
"label": {"$ref": "#/text_identifier"}, |
|
|
|
"aliases": { |
|
|
|
"type": "array", |
|
|
|
"minItems": 1, |
|
|
|
"items": {"$ref": "#/keycode_short"} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
"keycode_decl_array": { |
|
|
|
"type": "array", |
|
|
|
"minItems": 1, |
|
|
|
"items": {"$ref": "#/keycode_decl"} |
|
|
|
}, |
|
|
|
"keycode_short": { |
|
|
|
"type": "string", |
|
|
|
"minLength": 2, |
|
|
|
"maxLength": 7, |
|
|
|
"pattern": "^[A-Z][A-Zs_0-9]*$" |
|
|
|
}, |
|
|
|
"layout_macro": { |
|
|
|
"oneOf": [ |
|
|
@ -68,49 +121,6 @@ |
|
|
|
} |
|
|
|
] |
|
|
|
}, |
|
|
|
"key_unit": { |
|
|
|
"type": "number" |
|
|
|
}, |
|
|
|
"keyboard": { |
|
|
|
"type": "string", |
|
|
|
"pattern": "^[0-9a-z][0-9a-z_/]*$" |
|
|
|
}, |
|
|
|
"keycode": { |
|
|
|
"type": "string", |
|
|
|
"minLength": 2, |
|
|
|
"maxLength": 50, |
|
|
|
"pattern": "^[A-Z][A-Zs_0-9]*$" |
|
|
|
}, |
|
|
|
"keycode_short": { |
|
|
|
"type": "string", |
|
|
|
"minLength": 2, |
|
|
|
"maxLength": 7, |
|
|
|
"pattern": "^[A-Z][A-Zs_0-9]*$" |
|
|
|
}, |
|
|
|
"keycode_decl": { |
|
|
|
"type": "object", |
|
|
|
"required": [ |
|
|
|
"key" |
|
|
|
], |
|
|
|
"properties": { |
|
|
|
"key": {"$ref": "#/keycode"}, |
|
|
|
"label": {"$ref": "#/text_identifier"}, |
|
|
|
"aliases": { |
|
|
|
"type": "array", |
|
|
|
"minItems": 1, |
|
|
|
"items": {"$ref": "#/keycode_short"} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
"keycode_decl_array": { |
|
|
|
"type": "array", |
|
|
|
"minItems": 1 |
|
|
|
"items": {"$ref": "#/keycode_decl"} |
|
|
|
}, |
|
|
|
"mcu_pin_array": { |
|
|
|
"type": "array", |
|
|
|
"items": {"$ref": "#/mcu_pin"} |
|
|
|
}, |
|
|
|
"mcu_pin": { |
|
|
|
"oneOf": [ |
|
|
|
{ |
|
|
@ -129,14 +139,14 @@ |
|
|
|
"type": "string", |
|
|
|
"pattern": "^GP\\d{1,2}$" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"type": "integer" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"type": "null" |
|
|
|
} |
|
|
|
{"type": "integer"}, |
|
|
|
{"type": "null"} |
|
|
|
] |
|
|
|
}, |
|
|
|
"mcu_pin_array": { |
|
|
|
"type": "array", |
|
|
|
"items": {"$ref": "#/mcu_pin"} |
|
|
|
}, |
|
|
|
"signed_decimal": { |
|
|
|
"type": "number" |
|
|
|
}, |
|
|
@ -148,17 +158,22 @@ |
|
|
|
"minimum": -127, |
|
|
|
"maximum": 127 |
|
|
|
}, |
|
|
|
"snake_case": { |
|
|
|
"type": "string", |
|
|
|
"pattern": "^[a-z][a-z0-9_]*$" |
|
|
|
}, |
|
|
|
"string_array": { |
|
|
|
"type": "array", |
|
|
|
"items": { |
|
|
|
"type": "string" |
|
|
|
} |
|
|
|
"items": {"type": "string"} |
|
|
|
}, |
|
|
|
"string_object": { |
|
|
|
"type": "object", |
|
|
|
"additionalProperties": { |
|
|
|
"type": "string" |
|
|
|
} |
|
|
|
"additionalProperties": {"type": "string"} |
|
|
|
}, |
|
|
|
"text_identifier": { |
|
|
|
"type": "string", |
|
|
|
"minLength": 1, |
|
|
|
"maxLength": 250 |
|
|
|
}, |
|
|
|
"unsigned_decimal": { |
|
|
|
"type": "number", |
|
|
@ -172,28 +187,5 @@ |
|
|
|
"type": "integer", |
|
|
|
"minimum": 0, |
|
|
|
"maximum": 255 |
|
|
|
}, |
|
|
|
"bit": { |
|
|
|
"type": "integer", |
|
|
|
"minimum": 0, |
|
|
|
"maximum": 1 |
|
|
|
}, |
|
|
|
"keyboard_keymap_tuple": { |
|
|
|
"type": "array", |
|
|
|
"prefixItems": [ |
|
|
|
{ "$ref": "#/keyboard" }, |
|
|
|
{ "$ref": "#/filename" } |
|
|
|
], |
|
|
|
"unevaluatedItems": false |
|
|
|
}, |
|
|
|
"json_file_path": { |
|
|
|
"type": "string", |
|
|
|
"pattern": "^[0-9a-z_/\\-]+\\.json$" |
|
|
|
}, |
|
|
|
"build_target": { |
|
|
|
"oneOf": [ |
|
|
|
{ "$ref": "#/keyboard_keymap_tuple" }, |
|
|
|
{ "$ref": "#/json_file_path" } |
|
|
|
] |
|
|
|
} |
|
|
|
} |