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