diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index b9c64a55ec..441e6395cf 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -29,6 +29,10 @@ "minLength": 1, "maxLength": 250 }, + "snake_case": { + "type": "string", + "pattern": "^[a-z][a-z0-9_]*$" + }, "layout_macro": { "oneOf": [ { diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 0f0576b1c3..1d9b7e7e6a 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -268,7 +268,11 @@ "enabled": {"type": "boolean"} } }, - "features": {"$ref": "qmk.definitions.v1#/boolean_array"}, + "features": { + "$ref": "qmk.definitions.v1#/boolean_array", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } + + }, "indicators": { "type": "object", "properties": { @@ -382,6 +386,7 @@ "properties": { "animations": { "type": "object", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } "additionalProperties": { "type": "boolean" } @@ -431,6 +436,7 @@ "properties": { "animations": { "type": "object", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } "additionalProperties": { "type": "boolean" } @@ -483,6 +489,7 @@ "properties": { "animations": { "type": "object", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } "additionalProperties": { "type": "boolean" }