diff options
Diffstat (limited to 'data/schemas/keycodes.jsonschema')
| -rw-r--r-- | data/schemas/keycodes.jsonschema | 57 | 
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" +                        } +                    } +                } +            } +        } +    } +} | 
