{
    "description": "MachineBoss expression schema",
    "definitions": {
        "expr": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "number"
                },
                {
                    "type": "string"
                },
                {
                    "type": "object",
                    "required": [
                        "expr"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "expr": {
                            "type": "string"
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "log"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "log": {
                            "$ref": "#/definitions/expr"
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "exp"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "exp": {
                            "$ref": "#/definitions/expr"
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "geomsum"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "geomsum": {
                            "$ref": "#/definitions/expr"
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "not"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "not": {
                            "$ref": "#/definitions/expr"
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "*"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "*": {
                            "type": "array",
                            "minItems": 2,
                            "maxItems": 2,
                            "items": {
                                "$ref": "#/definitions/expr"
                            }
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "+"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "+": {
                            "type": "array",
                            "minItems": 2,
                            "maxItems": 2,
                            "items": {
                                "$ref": "#/definitions/expr"
                            }
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "/"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "/": {
                            "type": "array",
                            "minItems": 2,
                            "maxItems": 2,
                            "items": {
                                "$ref": "#/definitions/expr"
                            }
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "-"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "-": {
                            "type": "array",
                            "minItems": 2,
                            "maxItems": 2,
                            "items": {
                                "$ref": "#/definitions/expr"
                            }
                        }
                    }
                },
                {
                    "type": "object",
                    "required": [
                        "pow"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "pow": {
                            "type": "array",
                            "minItems": 2,
                            "maxItems": 2,
                            "items": {
                                "$ref": "#/definitions/expr"
                            }
                        }
                    }
                }
            ]
        }
    },
    "$ref": "#/definitions/expr"
}