{
    "$id": "https://schemas.highbyte.com/intelligencehub/model/4.5.0.json",
    "$defs": {
        "InternalTypeAttribute": {
            "type": "object",
            "properties": {
                "array": {
                    "type": "boolean",
                    "description": "Whether the attribute is an array."
                },
                "defaultValue": {
                    "additionalProperties": true,
                    "description": "The default value for the attribute."
                },
                "description": {
                    "type": "string",
                    "description": "Description of the configuration element."
                },
                "groupAs": {
                    "type": "string",
                    "description": "Optional grouping identifier for organizing configuration elements into logical groups."
                },
                "id": {
                    "type": "string",
                    "description": "UUID for the configuration element. If not provided, a random UUID will be generated. This ID is used to track the element across changes and should be stable for the lifetime of the process."
                },
                "internalType": {
                    "anyOf": [
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents an unconstrained Any type",
                                    "properties": {
                                        "variant": {
                                            "const": "Any"
                                        }
                                    }
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a Boolean type",
                                    "properties": {
                                        "variant": {
                                            "const": "Boolean"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a File type",
                                    "properties": {
                                        "variant": {
                                            "const": "File"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a String type",
                                    "properties": {
                                        "variant": {
                                            "const": "String"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric Int8 type",
                                    "properties": {
                                        "variant": {
                                            "const": "Int8"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric Int16 type",
                                    "properties": {
                                        "variant": {
                                            "const": "Int16"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric Int32 type",
                                    "properties": {
                                        "variant": {
                                            "const": "Int32"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric Int64 type",
                                    "properties": {
                                        "variant": {
                                            "const": "Int64"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric UInt8 type",
                                    "properties": {
                                        "variant": {
                                            "const": "UInt8"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric UInt16 type",
                                    "properties": {
                                        "variant": {
                                            "const": "UInt16"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric UInt32 type",
                                    "properties": {
                                        "variant": {
                                            "const": "UInt32"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric UInt64 type",
                                    "properties": {
                                        "variant": {
                                            "const": "UInt64"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric Real32 type",
                                    "properties": {
                                        "variant": {
                                            "const": "Real32"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a numeric Real64 type",
                                    "properties": {
                                        "variant": {
                                            "const": "Real64"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "description": "Represents a DateTime type",
                                    "properties": {
                                        "variant": {
                                            "const": "DateTime"
                                        }
                                    },
                                    "required": [
                                        "variant"
                                    ]
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        },
                        {
                            "allOf": [
                                {
                                    "type": "object",
                                    "properties": {
                                        "enumValues": {
                                            "description": "Defines the allowed list of values for the enum",
                                            "type": "array",
                                            "items": {
                                                "additionalProperties": true
                                            }
                                        },
                                        "variant": {
                                            "const": "Enum"
                                        }
                                    },
                                    "required": [
                                        "enumValues",
                                        "variant"
                                    ],
                                    "description": "Represents an Enum type restricted to a fixed set of values"
                                },
                                {
                                    "description": "The built-in type of this attribute, such as String, Int32, or Enum."
                                }
                            ]
                        }
                    ]
                },
                "name": {
                    "type": "string",
                    "description": "Name of the configuration element."
                },
                "nullable": {
                    "type": "boolean",
                    "description": "Whether the attribute can be null."
                },
                "required": {
                    "type": "boolean",
                    "description": "Whether the attribute is required."
                },
                "attributeType": {
                    "const": "Internal"
                }
            },
            "required": [
                "array",
                "internalType",
                "nullable",
                "required",
                "attributeType"
            ],
            "description": "Represents an attribute holding a built-in scalar type, such as String, Int32, or Enum."
        },
        "ModeledAttribute": {
            "type": "object",
            "properties": {
                "array": {
                    "type": "boolean",
                    "description": "Whether the attribute is an array."
                },
                "defaultValue": {
                    "additionalProperties": true,
                    "description": "The default value for the attribute."
                },
                "description": {
                    "type": "string",
                    "description": "Description of the configuration element."
                },
                "groupAs": {
                    "type": "string",
                    "description": "Optional grouping identifier for organizing configuration elements into logical groups."
                },
                "id": {
                    "type": "string",
                    "description": "UUID for the configuration element. If not provided, a random UUID will be generated. This ID is used to track the element across changes and should be stable for the lifetime of the process."
                },
                "model": {
                    "type": "string",
                    "description": "The name of the referenced model for this attribute."
                },
                "name": {
                    "type": "string",
                    "description": "Name of the configuration element."
                },
                "nullable": {
                    "type": "boolean",
                    "description": "Whether the attribute can be null."
                },
                "required": {
                    "type": "boolean",
                    "description": "Whether the attribute is required."
                },
                "attributeType": {
                    "const": "Modeled"
                }
            },
            "required": [
                "array",
                "model",
                "nullable",
                "required",
                "attributeType"
            ],
            "description": "Represents a modeled attribute, referencing another model by name."
        },
        "ObjectModelAttribute-1": {
            "type": "object",
            "properties": {
                "array": {
                    "type": "boolean",
                    "description": "Whether the attribute is an array."
                },
                "attributes": {
                    "description": "The attributes that make up this nested object.",
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/ModeledAttribute"
                            },
                            {
                                "$ref": "#/$defs/InternalTypeAttribute"
                            },
                            {
                                "$ref": "#/$defs/ObjectModelAttribute-2"
                            }
                        ]
                    }
                },
                "defaultValue": {
                    "additionalProperties": true,
                    "description": "The default value for the attribute."
                },
                "description": {
                    "type": "string",
                    "description": "Description of the configuration element."
                },
                "groupAs": {
                    "type": "string",
                    "description": "Optional grouping identifier for organizing configuration elements into logical groups."
                },
                "id": {
                    "type": "string",
                    "description": "UUID for the configuration element. If not provided, a random UUID will be generated. This ID is used to track the element across changes and should be stable for the lifetime of the process."
                },
                "name": {
                    "type": "string",
                    "description": "Name of the configuration element."
                },
                "nullable": {
                    "type": "boolean",
                    "description": "Whether the attribute can be null."
                },
                "required": {
                    "type": "boolean",
                    "description": "Whether the attribute is required."
                }
            },
            "required": [
                "array",
                "attributes",
                "nullable",
                "required"
            ],
            "description": "Represents an attribute defined as an inline nested object rather than a reference to a named model."
        },
        "ObjectModelAttribute-2": {
            "$ref": "#/$defs/ObjectModelAttribute-1",
            "type": "object",
            "properties": {
                "attributeType": {
                    "const": "Object"
                }
            },
            "required": [
                "attributeType"
            ]
        }
    },
    "type": "object",
    "properties": {
        "attributes": {
            "description": "The attributes defined for this model.",
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/ModeledAttribute"
                    },
                    {
                        "$ref": "#/$defs/InternalTypeAttribute"
                    },
                    {
                        "$ref": "#/$defs/ObjectModelAttribute-2"
                    }
                ]
            }
        },
        "description": {
            "type": "string",
            "description": "Description of the configuration element."
        },
        "extendsModel": {
            "type": "string",
            "description": "The name of the model this one extends, if any."
        },
        "groupAs": {
            "type": "string",
            "description": "Optional grouping identifier for organizing configuration elements into logical groups."
        },
        "id": {
            "type": "string",
            "description": "UUID for the configuration element. If not provided, a random UUID will be generated. This ID is used to track the element across changes and should be stable for the lifetime of the process."
        },
        "modelVersion": {
            "type": "string",
            "description": "The version of this model."
        },
        "name": {
            "type": "string",
            "description": "Name of the configuration element."
        },
        "tags": {
            "description": "Tags for organizing and filtering configuration elements. Contains a list of tag names.",
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    },
    "required": [
        "attributes"
    ],
    "description": "Represents a configured model, including its attributes and inheritance."
}
