{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string" }, "items": { "$ref": "#/$defs/items" }, "required": ["title", "items"], "additionalProperties": false }, "$defs": { "toggle": { "type": "object", "properties": { "entity": { "$ref": "#/$defs/entity" }, "name": { "type": "string" }, "type": { "const": "toggle" } }, "required": ["entity", "name", "type"], "additionalProperties": false }, "tap": { "type": "object", "properties": { "entity": { "$ref": "#/$defs/entity" }, "name": { "title": "Your familiar name", "type": "string" }, "type": { "const": "tap" }, "service": { "$ref": "#/$defs/entity", "deprecated": true, "title": "Schema change:", "description": "Use 'tap_action' instead to mirror Home Assistant." }, "tap_action": { "$ref": "#/$defs/action" } }, "oneOf": [ { "required": ["entity", "name", "type", "service"] }, { "required": ["entity", "name", "type", "tap_action"] } ], "additionalProperties": false }, "menu": { "type": "object", "properties": { "entity": { "$ref": "#/$defs/entity" }, "name": { "type": "string" }, "title": { "type": "string" }, "type": { "const": "group" }, "items": { "$ref": "#/$defs/items" } }, "required": ["entity", "name", "title", "type", "items"], "additionalProperties": false }, "items": { "type": "array", "items": { "oneOf": [ { "$ref": "#/$defs/toggle" }, { "$ref": "#/$defs/tap" }, { "$ref": "#/$defs/menu" } ] } }, "entity": { "title": "Home Assistant entity name", "type": "string", "pattern": "^[^.]+\\.[^.]+$" }, "action": { "title": "Action", "description": "Field 'confirm' is optional.", "type": "object", "properties": { "service": { "$ref": "#/$defs/entity" }, "confirm": { "type": "boolean", "default": false, "description": "Confirm the action before execution as a precaution." } }, "required": ["service"] } } }