keymap.jsonschema (3136B)
1 { 2 "$schema": "https://json-schema.org/draft/2020-12/schema#", 3 "$id": "qmk.keymap.v1", 4 "title": "Keymap Information", 5 "type": "object", 6 "properties": { 7 "author": {"type": "string"}, 8 "converter": { 9 "type": "string", 10 "minLength": 1, 11 "pattern": "^[a-z][0-9a-z_]*$" 12 }, 13 "host_language": {"$ref": "./definitions.jsonschema#/text_identifier"}, 14 "keyboard": {"$ref": "./definitions.jsonschema#/text_identifier"}, 15 "keymap": {"$ref": "./definitions.jsonschema#/text_identifier"}, 16 "layout": {"$ref": "./definitions.jsonschema#/layout_macro"}, 17 "layers": { 18 "type": "array", 19 "items": { 20 "type": "array", 21 "items": {"type": "string"} 22 } 23 }, 24 "encoders": { 25 "type": "array", 26 "items": { 27 "type": "array", 28 "items": { 29 "type": "object", 30 "required": ["ccw", "cw"], 31 "properties": { 32 "ccw": {"type": "string"}, 33 "cw": {"type": "string"} 34 } 35 } 36 } 37 }, 38 "dip_switches": { 39 "type": "array", 40 "items": { 41 "type": "object", 42 "required": ["on", "off"], 43 "properties": { 44 "on": {"type": "string"}, 45 "off": {"type": "string"} 46 } 47 } 48 }, 49 "macros": { 50 "type": "array", 51 "items": { 52 "type": "array", 53 "items": { 54 "oneOf": [ 55 { 56 "type": "string" 57 }, 58 { 59 "type": "object", 60 "additionalProperties": false, 61 "properties": { 62 "action": { 63 "type": "string", 64 "enum": ["beep", "delay", "down", "tap", "up"] 65 }, 66 "keycodes": { 67 "type": "array", 68 "items": { 69 "$ref": "./definitions.jsonschema#/text_identifier" 70 } 71 }, 72 "duration": { 73 "$ref": "./definitions.jsonschema#/unsigned_int" 74 } 75 } 76 } 77 ] 78 } 79 } 80 }, 81 "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"}, 82 "config": {"$ref": "./keyboard.jsonschema#"}, 83 "notes": { 84 "type": "string" 85 }, 86 "modules": { 87 "type": "array", 88 "items": { 89 "type": "string" 90 } 91 } 92 } 93 }