{
    "title": "Content",
    "description": "The value of a content.",
    "type": "object",
    "$ref": "#/$defs/any",
    "$defs": {
        "boolean": {
            "type": "object",
            "title": "Value definition",
            "description": "Defines the data type and value.",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "boolean",
                    "title": "Data type",
                    "description": "The data type of the resolved value."
                },
                "value": {
                    "type": "object",
                    "title": "Value",
                    "description": "Defines how to resolve the value.",
                    "properties": {
                        "type": {
                            "type": "string",
                            "title": "Value type",
                            "description": "Defines whether the value is static or dynamically resolved at runtime."
                        }
                    },
                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "static"
                                },
                                "value": {
                                    "type": "boolean",
                                    "title": "Static value",
                                    "description": "The resolved value."
                                }
                            },
                            "required": [
                                "type",
                                "value"
                            ],
                            "additionalProperties": false
                        },
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "dynamic"
                                },
                                "nullable": {
                                    "type": "boolean",
                                    "title": "Nullable?",
                                    "description": "Whether the expression result is nullable."
                                },
                                "expression": {
                                    "type": "string",
                                    "title": "Expression",
                                    "description": "A CQL expression that resolves to the value."
                                },
                                "default": {
                                    "type": "boolean",
                                    "title": "Default",
                                    "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type."
                                }
                            },
                            "if": {
                                "properties": {
                                    "nullable": {
                                        "type": "boolean",
                                        "const": true
                                    }
                                },
                                "required": [
                                    "nullable"
                                ]
                            },
                            "then": {
                                "required": [
                                    "type",
                                    "nullable",
                                    "expression"
                                ]
                            },
                            "else": {
                                "required": [
                                    "type",
                                    "expression",
                                    "default"
                                ]
                            },
                            "required": [
                                "type",
                                "expression"
                            ],
                            "additionalProperties": false
                        }
                    ],
                    "required": [
                        "type"
                    ]
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "boolean-item": {
            "type": "object",
            "title": "Value definition",
            "description": "Defines the data type and value.",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "boolean",
                    "title": "Data type",
                    "description": "The data type of the resolved value."
                },
                "value": {
                    "type": "object",
                    "title": "Value",
                    "description": "Defines how to resolve the value.",
                    "properties": {
                        "type": {
                            "type": "string",
                            "title": "Value type",
                            "description": "Defines whether the value is static or dynamically resolved at runtime."
                        }
                    },
                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "static"
                                },
                                "value": {
                                    "type": "boolean",
                                    "title": "Static value",
                                    "description": "The resolved value."
                                }
                            },
                            "required": [
                                "type",
                                "value"
                            ],
                            "additionalProperties": false
                        },
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "dynamic"
                                },
                                "nullable": {
                                    "type": "boolean",
                                    "title": "Nullable?",
                                    "description": "Whether the expression result is nullable."
                                },
                                "expression": {
                                    "type": "string",
                                    "title": "Expression",
                                    "description": "A CQL expression that resolves to the value."
                                },
                                "default": {
                                    "type": "boolean",
                                    "title": "Default",
                                    "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type."
                                }
                            },
                            "if": {
                                "properties": {
                                    "nullable": {
                                        "type": "boolean",
                                        "const": true
                                    }
                                },
                                "required": [
                                    "nullable"
                                ]
                            },
                            "then": {
                                "required": [
                                    "type",
                                    "nullable",
                                    "expression"
                                ]
                            },
                            "else": {
                                "required": [
                                    "type",
                                    "expression",
                                    "default"
                                ]
                            },
                            "required": [
                                "type",
                                "expression"
                            ],
                            "additionalProperties": false
                        }
                    ],
                    "required": [
                        "type"
                    ]
                },
                "label": {
                    "type": "string",
                    "title": "Label",
                    "description": "The label of the item."
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "text": {
            "type": "object",
            "title": "Value definition",
            "description": "Defines the data type and value.",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "text",
                    "title": "Data type",
                    "description": "The data type of the resolved value."
                },
                "value": {
                    "type": "object",
                    "title": "Value",
                    "description": "Defines how to resolve the value.",
                    "properties": {
                        "type": {
                            "type": "string",
                            "title": "Value type",
                            "description": "Defines whether the value is static or dynamically resolved at runtime."
                        }
                    },
                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "static"
                                },
                                "value": {
                                    "type": "string",
                                    "title": "Static value",
                                    "description": "The resolved value."
                                }
                            },
                            "required": [
                                "type",
                                "value"
                            ],
                            "additionalProperties": false
                        },
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "dynamic"
                                },
                                "nullable": {
                                    "type": "boolean",
                                    "title": "Nullable?",
                                    "description": "Whether the expression result is nullable."
                                },
                                "expression": {
                                    "type": "string",
                                    "title": "Expression",
                                    "description": "A CQL expression that resolves to the value."
                                },
                                "default": {
                                    "type": "string",
                                    "title": "Default",
                                    "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type."
                                }
                            },
                            "if": {
                                "properties": {
                                    "nullable": {
                                        "type": "boolean",
                                        "const": true
                                    }
                                },
                                "required": [
                                    "nullable"
                                ]
                            },
                            "then": {
                                "required": [
                                    "type",
                                    "nullable",
                                    "expression"
                                ]
                            },
                            "else": {
                                "required": [
                                    "type",
                                    "expression",
                                    "default"
                                ]
                            },
                            "required": [
                                "type",
                                "expression"
                            ],
                            "additionalProperties": false
                        }
                    ],
                    "required": [
                        "type"
                    ]
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "text-item": {
            "type": "object",
            "title": "Value definition",
            "description": "Defines the data type and value.",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "text",
                    "title": "Data type",
                    "description": "The data type of the resolved value."
                },
                "value": {
                    "type": "object",
                    "title": "Value",
                    "description": "Defines how to resolve the value.",
                    "properties": {
                        "type": {
                            "type": "string",
                            "title": "Value type",
                            "description": "Defines whether the value is static or dynamically resolved at runtime."
                        }
                    },
                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "static"
                                },
                                "value": {
                                    "type": "string",
                                    "title": "Static value",
                                    "description": "The resolved value."
                                }
                            },
                            "required": [
                                "type",
                                "value"
                            ],
                            "additionalProperties": false
                        },
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "dynamic"
                                },
                                "nullable": {
                                    "type": "boolean",
                                    "title": "Nullable?",
                                    "description": "Whether the expression result is nullable."
                                },
                                "expression": {
                                    "type": "string",
                                    "title": "Expression",
                                    "description": "A CQL expression that resolves to the value."
                                },
                                "default": {
                                    "type": "string",
                                    "title": "Default",
                                    "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type."
                                }
                            },
                            "if": {
                                "properties": {
                                    "nullable": {
                                        "type": "boolean",
                                        "const": true
                                    }
                                },
                                "required": [
                                    "nullable"
                                ]
                            },
                            "then": {
                                "required": [
                                    "type",
                                    "nullable",
                                    "expression"
                                ]
                            },
                            "else": {
                                "required": [
                                    "type",
                                    "expression",
                                    "default"
                                ]
                            },
                            "required": [
                                "type",
                                "expression"
                            ],
                            "additionalProperties": false
                        }
                    ],
                    "required": [
                        "type"
                    ]
                },
                "label": {
                    "type": "string",
                    "title": "Label",
                    "description": "The label of the item."
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "number": {
            "type": "object",
            "title": "Value definition",
            "description": "Defines the data type and value.",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "number",
                    "title": "Data type",
                    "description": "The data type of the resolved value."
                },
                "value": {
                    "type": "object",
                    "title": "Value",
                    "description": "Defines how to resolve the value.",
                    "properties": {
                        "type": {
                            "type": "string",
                            "title": "Value type",
                            "description": "Defines whether the value is static or dynamically resolved at runtime."
                        }
                    },
                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "const": "static"
                                },
                                "value": {
                                    "type": "number",
                                    "title": "Static value",
                                    "description": "The resolved value.",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                }
                            },
                            "required": [
                                "type",
                                "value"
                            ],
                            "additionalProperties": false
                        },
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "dynamic"
                                },
                                "nullable": {
                                    "type": "boolean",
                                    "title": "Nullable?",
                                    "description": "Whether the expression result is nullable."
                                },
                                "expression": {
                                    "type": "string",
                                    "title": "Expression",
                                    "description": "A CQL expression that resolves to the value."
                                },
                                "default": {
                                    "type": "number",
                                    "title": "Default",
                                    "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type.",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                }
                            },
                            "if": {
                                "properties": {
                                    "nullable": {
                                        "type": "boolean",
                                        "const": true
                                    }
                                },
                                "required": [
                                    "type",
                                    "nullable"
                                ]
                            },
                            "then": {
                                "required": [
                                    "type",
                                    "nullable",
                                    "expression"
                                ]
                            },
                            "else": {
                                "required": [
                                    "type",
                                    "expression",
                                    "default"
                                ]
                            },
                            "required": [
                                "type",
                                "expression"
                            ],
                            "additionalProperties": false
                        }
                    ],
                    "required": [
                        "type"
                    ]
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "number-item": {
            "type": "object",
            "title": "Value definition",
            "description": "Defines the data type and value.",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "number",
                    "title": "Data type",
                    "description": "The data type of the resolved value."
                },
                "value": {
                    "type": "object",
                    "title": "Value",
                    "description": "Defines how to resolve the value.",
                    "properties": {
                        "type": {
                            "type": "string",
                            "title": "Value type",
                            "description": "Defines whether the value is static or dynamically resolved at runtime."
                        }
                    },
                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "const": "static"
                                },
                                "value": {
                                    "type": "number",
                                    "title": "Static value",
                                    "description": "The resolved value.",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                }
                            },
                            "required": [
                                "type",
                                "value"
                            ],
                            "additionalProperties": false
                        },
                        {
                            "type": "object",
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "const": "dynamic"
                                },
                                "nullable": {
                                    "type": "boolean",
                                    "title": "Nullable?",
                                    "description": "Whether the expression result is nullable."
                                },
                                "expression": {
                                    "type": "string",
                                    "title": "Expression",
                                    "description": "A CQL expression that resolves to the value."
                                },
                                "default": {
                                    "type": "number",
                                    "title": "Default",
                                    "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type.",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                }
                            },
                            "if": {
                                "properties": {
                                    "nullable": {
                                        "type": "boolean",
                                        "const": true
                                    }
                                },
                                "required": [
                                    "type",
                                    "nullable"
                                ]
                            },
                            "then": {
                                "required": [
                                    "type",
                                    "nullable",
                                    "expression"
                                ]
                            },
                            "else": {
                                "required": [
                                    "type",
                                    "expression",
                                    "default"
                                ]
                            },
                            "required": [
                                "type",
                                "expression"
                            ],
                            "additionalProperties": false
                        }
                    ],
                    "required": [
                        "type"
                    ]
                },
                "label": {
                    "type": "string",
                    "title": "Label",
                    "description": "The label of the item."
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "structure": {
            "type": "object",
            "title": "Structure",
            "description": "A set of attributes as key-value pairs.",
            "properties": {
                "type": {
                    "const": "structure"
                },
                "name": {
                    "type": "string",
                    "title": "Structure name",
                    "description": "The name of the structure in a union."
                },
                "attributes": {
                    "type": "object",
                    "title": "Attributes",
                    "description": "The structure-specific attributes.",
                    "additionalProperties": {
                        "$ref": "#"
                    }
                }
            },
            "required": [
                "type",
                "attributes"
            ],
            "additionalProperties": false
        },
        "structure-item": {
            "type": "object",
            "title": "Structure",
            "description": "A set of attributes as key-value pairs.",
            "properties": {
                "type": {
                    "const": "structure"
                },
                "name": {
                    "type": "string",
                    "title": "Structure name",
                    "description": "The name of the structure in a union."
                },
                "attributes": {
                    "type": "object",
                    "title": "Attributes",
                    "description": "The structure-specific attributes.",
                    "additionalProperties": {
                        "$ref": "#"
                    }
                },
                "label": {
                    "type": "string",
                    "title": "Label",
                    "description": "The label of the item."
                }
            },
            "required": [
                "type",
                "attributes"
            ],
            "additionalProperties": false
        },
        "list": {
            "type": "object",
            "title": "List",
            "description": "A set of attributes",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "list"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/$defs/any-item"
                    }
                }
            },
            "required": [
                "type",
                "items"
            ],
            "additionalProperties": false
        },
        "list-item": {
            "type": "object",
            "title": "List",
            "description": "A set of attributes",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "list"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/$defs/any-item"
                    }
                },
                "label": {
                    "type": "string",
                    "title": "Label",
                    "description": "The label of the item."
                }
            },
            "required": [
                "type",
                "items"
            ],
            "additionalProperties": false
        },
        "any": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "description": "The data type of the value."
                }
            },
            "oneOf": [
                {
                    "$ref": "#/$defs/boolean"
                },
                {
                    "$ref": "#/$defs/text"
                },
                {
                    "$ref": "#/$defs/number"
                },
                {
                    "$ref": "#/$defs/structure"
                },
                {
                    "$ref": "#/$defs/list"
                }
            ]
        },
        "any-item": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "description": "The data type of the value."
                }
            },
            "oneOf": [
                {
                    "$ref": "#/$defs/boolean-item"
                },
                {
                    "$ref": "#/$defs/text-item"
                },
                {
                    "$ref": "#/$defs/number-item"
                },
                {
                    "$ref": "#/$defs/structure-item"
                },
                {
                    "$ref": "#/$defs/list-item"
                }
            ]
        }
    }
}
