aboutsummaryrefslogtreecommitdiff
path: root/data/schemas/keymap.jsonschema
diff options
context:
space:
mode:
Diffstat (limited to 'data/schemas/keymap.jsonschema')
-rw-r--r--data/schemas/keymap.jsonschema57
1 files changed, 57 insertions, 0 deletions
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
new file mode 100644
index 000000000..faa250a94
--- /dev/null
+++ b/data/schemas/keymap.jsonschema
@@ -0,0 +1,57 @@
1{
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "$id": "qmk.keymap.v1",
4 "title": "Keymap Information",
5 "type": "object",
6 "properties": {
7 "author": {"type": "string"},
8 "host_language": {"$ref": "qmk.definitions.v1#/text_identifier"},
9 "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
10 "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
11 "layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
12 "layers": {
13 "type": "array",
14 "items": {
15 "type": "array",
16 "items": {"type": "string"}
17 }
18 },
19 "macros": {
20 "type": "array",
21 "items": {
22 "type": "array",
23 "items": {
24 "oneOf": [
25 {
26 "type": "string"
27 },
28 {
29 "type": "object",
30 "additionalProperties": false,
31 "properties": {
32 "action": {
33 "type": "string",
34 "enum": ['beep', 'delay', 'down', 'tap', 'up']
35 },
36 "keycodes": {
37 "type": "array",
38 "items": {
39 "$ref": "qmk.definitions.v1#/text_identifier"
40 }
41 },
42 "duration": {
43 "$ref": "qmk.definitions.v1#/unsigned_int"
44 }
45 }
46 }
47 ]
48 }
49 }
50 },
51 "config": {"$ref": "qmk.keyboard.v1"},
52 "notes": {
53 "type": "string",
54 "description": "asdf"
55 }
56 }
57}