summaryrefslogtreecommitdiff
path: root/data/schemas/keycodes.jsonschema
diff options
context:
space:
mode:
Diffstat (limited to 'data/schemas/keycodes.jsonschema')
-rw-r--r--data/schemas/keycodes.jsonschema57
1 files changed, 57 insertions, 0 deletions
diff --git a/data/schemas/keycodes.jsonschema b/data/schemas/keycodes.jsonschema
new file mode 100644
index 0000000000..77a8347b3b
--- /dev/null
+++ b/data/schemas/keycodes.jsonschema
@@ -0,0 +1,57 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema#",
+ "$id": "qmk.keycodes.v1",
+ "title": "Keycode Information",
+ "type": "object",
+ "definitions": {
+ "define": {
+ "type": "string",
+ "minLength": 2,
+ "maxLength": 50,
+ "pattern": "^[A-Zs_0-9]*$"
+ },
+ "hex_number_4d": {
+ "type": "string",
+ "pattern": "^0x[0-9A-F]{4}$"
+ }
+ },
+ "properties": {
+ "ranges": {
+ "type": "object",
+ "propertyNames": {
+ "type": "string"
+ },
+ "additionalProperties": {
+ "type": "object",
+ "required": [
+ "define"
+ ],
+ "properties": {
+ "define": {"$ref": "#/definitions/define"}
+ }
+ }
+ },
+ "keycodes": {
+ "type": "object",
+ "propertyNames": {
+ "$ref": "#/definitions/hex_number_4d"
+ },
+ "additionalProperties": {
+ "type": "object",
+ "required": [
+ "key"
+ ],
+ "properties": {
+ "key": {"$ref": "#/definitions/define"},
+ "aliases": {
+ "type": "array",
+ "minItems": 1,
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}