| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "qmk.xap.v1",
- "title": "XAP Spec",
- "definitions": {
- "data_type": {
- "oneOf": [
- {
- "enum": [
- "bool",
- "u8",
- "u16",
- "u32",
- "u64",
- "struct",
- "string"
- ]
- },
- {
- "type": "string",
- "pattern": "^u\\d{1,2}\\[\\d{1,2}\\]*$"
- }
- ]
- },
- "router_type": {
- "enum": [
- "command",
- "router"
- ]
- },
- "permission": {
- "enum": [
- "secure"
- ]
- },
- "struct": {
- "type": "array",
- "items": {
- "type": "object",
- "additionalProperties": false,
- "required": [
- "name",
- "type"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "type": {
- "type": "string"
- }
- }
- }
- },
- "route": {
- "type": "object",
- "propertyNames": {
- "$ref": "qmk.definitions.v1#/hex_number_2d"
- },
- "additionalProperties": {
- "type": "object",
- "required": [
- "type",
- "define"
- ],
- "additionalProperties": false,
- "properties": {
- "type": {
- "$ref": "#/definitions/router_type"
- },
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "define": {
- "$ref": "qmk.definitions.v1#/define"
- },
- "permissions": {
- "$ref": "#/definitions/permission"
- },
- "enable_if_preprocessor": {
- "type": "string"
- },
- "request_type": {
- "$ref": "#/definitions/data_type"
- },
- "request_struct_length": {
- "type": "number"
- },
- "request_purpose": {
- "type": "string"
- },
- "return_type": {
- "$ref": "#/definitions/data_type"
- },
- "request_struct_members": {
- "$ref": "#definitions/struct"
- },
- "return_struct_length": {
- "type": "number"
- },
- "return_constant": {
- "type": [
- "array",
- "string"
- ]
- },
- "return_struct_members": {
- "$ref": "#definitions/struct"
- },
- "return_purpose": {
- "type": "string"
- },
- "return_execute": {
- "type": "string"
- },
- "routes": {
- "$ref": "#/definitions/route"
- }
- }
- }
- }
- },
- "type": "object",
- "additionalProperties": false,
- "required": [
- "version"
- ],
- "properties": {
- "version": {
- "$ref": "qmk.definitions.v1#/bcd_version"
- },
- "define": {
- "$ref": "qmk.definitions.v1#/define"
- },
- "documentation": {
- "type": "object",
- "properties": {
- "order": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "term_definitions": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- }
- },
- "type_docs": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- }
- },
- "type_definitions": {
- "type": "object",
- "additionalProperties": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "type": {
- "$ref": "#/definitions/data_type"
- },
- "struct_length": {
- "type": "number"
- },
- "struct_members": {
- "$ref": "#definitions/struct"
- }
- }
- }
- },
- "response_flags": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "define_prefix": {
- "$ref": "qmk.definitions.v1#/define"
- },
- "bits": {
- "type": "object",
- "propertyNames": {
- "$ref": "qmk.definitions.v1#/text_unsigned_int"
- },
- "additionalProperties": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "name": {
- "type": "string"
- },
- "define": {
- "$ref": "qmk.definitions.v1#/define"
- },
- "description": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "broadcast_messages": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "define_prefix": {
- "$ref": "qmk.definitions.v1#/define"
- },
- "messages": {
- "type": "object",
- "propertyNames": {
- "$ref": "qmk.definitions.v1#/hex_number_2d"
- },
- "additionalProperties": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "name": {
- "type": "string"
- },
- "define": {
- "$ref": "qmk.definitions.v1#/define"
- },
- "description": {
- "type": "string"
- },
- "return_type": {
- "$ref": "#/definitions/data_type"
- }
- }
- }
- }
- }
- },
- "routes": {
- "$ref": "#/definitions/route"
- }
- }
- }
|