2021-06-25 05:48:53 +02:00
|
|
|
{
|
2022-06-18 07:30:46 +02:00
|
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema#",
|
2021-06-25 05:48:53 +02:00
|
|
|
"$id": "qmk.definitions.v1",
|
|
|
|
"title": "Common definitions used across QMK's jsonschemas.",
|
|
|
|
"type": "object",
|
|
|
|
"boolean_array": {
|
|
|
|
"type": "object",
|
|
|
|
"additionalProperties": {"type": "boolean"}
|
|
|
|
},
|
|
|
|
"filename": {
|
|
|
|
"type": "string",
|
|
|
|
"minLength": 1,
|
|
|
|
"pattern": "^[0-9a-z_]*$"
|
|
|
|
},
|
|
|
|
"hex_number_2d": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^0x[0-9A-F]{2}$"
|
|
|
|
},
|
|
|
|
"hex_number_4d": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^0x[0-9A-F]{4}$"
|
|
|
|
},
|
2022-01-16 22:44:34 +01:00
|
|
|
"bcd_version": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^[0-9]{1,2}\\.[0-9]\\.[0-9]$"
|
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
"text_identifier": {
|
|
|
|
"type": "string",
|
|
|
|
"minLength": 1,
|
|
|
|
"maxLength": 250
|
|
|
|
},
|
2023-09-20 15:13:51 +02:00
|
|
|
"snake_case": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^[a-z][a-z0-9_]*$"
|
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
"layout_macro": {
|
|
|
|
"oneOf": [
|
|
|
|
{
|
|
|
|
"type": "string",
|
2022-03-04 18:06:15 +01:00
|
|
|
"enum": [
|
|
|
|
"LAYOUT",
|
|
|
|
"LAYOUT_1x2uC",
|
|
|
|
"LAYOUT_1x2uL",
|
|
|
|
"LAYOUT_1x2uR",
|
|
|
|
"LAYOUT_2x2uC",
|
|
|
|
"LAYOUT_2x3uC",
|
|
|
|
"LAYOUT_625uC",
|
|
|
|
"LAYOUT_ortho_3x12_1x2uC",
|
|
|
|
"LAYOUT_ortho_4x12_1x2uC",
|
|
|
|
"LAYOUT_ortho_4x12_1x2uL",
|
|
|
|
"LAYOUT_ortho_4x12_1x2uR",
|
|
|
|
"LAYOUT_ortho_5x12_1x2uC",
|
|
|
|
"LAYOUT_ortho_5x12_2x2uC",
|
|
|
|
"LAYOUT_ortho_5x14_1x2uC",
|
|
|
|
"LAYOUT_ortho_5x14_1x2uL",
|
|
|
|
"LAYOUT_ortho_5x14_1x2uR",
|
|
|
|
"LAYOUT_planck_1x2uC",
|
|
|
|
"LAYOUT_planck_1x2uL",
|
|
|
|
"LAYOUT_planck_1x2uR",
|
|
|
|
"LAYOUT_preonic_1x2uC",
|
|
|
|
"LAYOUT_preonic_1x2uL",
|
2022-04-29 02:31:55 +02:00
|
|
|
"LAYOUT_preonic_1x2uR"
|
2022-03-04 18:06:15 +01:00
|
|
|
]
|
2021-06-25 05:48:53 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^LAYOUT_[0-9a-z_]*$"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"key_unit": {
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "number"
|
2021-06-25 05:48:53 +02:00
|
|
|
},
|
2022-04-01 11:25:43 +02:00
|
|
|
"keyboard": {
|
2022-09-04 22:36:33 +02:00
|
|
|
"type": "string",
|
|
|
|
"pattern": "^[0-9a-z][0-9a-z_/]*$"
|
2022-04-01 11:25:43 +02:00
|
|
|
},
|
2023-03-27 21:01:07 +02:00
|
|
|
"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"}
|
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
"mcu_pin_array": {
|
|
|
|
"type": "array",
|
|
|
|
"items": {"$ref": "#/mcu_pin"}
|
|
|
|
},
|
|
|
|
"mcu_pin": {
|
|
|
|
"oneOf": [
|
2022-02-15 05:41:16 +01:00
|
|
|
{
|
|
|
|
"type": "string",
|
|
|
|
"enum": ["NO_PIN"]
|
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
{
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^[A-K]\\d{1,2}$"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^LINE_PIN\\d{1,2}$"
|
|
|
|
},
|
2022-06-30 13:19:27 +02:00
|
|
|
{
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^GP\\d{1,2}$"
|
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
{
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "integer"
|
2021-06-25 05:48:53 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "null"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"signed_decimal": {
|
|
|
|
"type": "number"
|
|
|
|
},
|
|
|
|
"signed_int": {
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "integer"
|
2022-01-16 22:44:34 +01:00
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
"signed_int_8": {
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "integer",
|
|
|
|
"minimum": -127,
|
|
|
|
"maximum": 127
|
2022-01-16 22:44:34 +01:00
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
"string_array": {
|
|
|
|
"type": "array",
|
|
|
|
"items": {
|
|
|
|
"type": "string"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"string_object": {
|
|
|
|
"type": "object",
|
|
|
|
"additionalProperties": {
|
|
|
|
"type": "string"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"unsigned_decimal": {
|
|
|
|
"type": "number",
|
2022-06-18 07:30:46 +02:00
|
|
|
"minimum": 0
|
2021-06-25 05:48:53 +02:00
|
|
|
},
|
|
|
|
"unsigned_int": {
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "integer",
|
|
|
|
"minimum": 0
|
2022-01-16 22:44:34 +01:00
|
|
|
},
|
2021-06-25 05:48:53 +02:00
|
|
|
"unsigned_int_8": {
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "integer",
|
|
|
|
"minimum": 0,
|
|
|
|
"maximum": 255
|
2022-06-14 13:30:31 +02:00
|
|
|
},
|
|
|
|
"bit": {
|
2022-06-18 07:30:46 +02:00
|
|
|
"type": "integer",
|
|
|
|
"minimum": 0,
|
|
|
|
"maximum": 1
|
2021-06-25 05:48:53 +02:00
|
|
|
}
|
|
|
|
}
|