{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "definitions.schema.json",
    "title": "Definitions",
    "description": "Common definitions used in schema files.",
    "definitions": {
        "numericValue": {
            "title": "Numeric Value",
            "oneOf": [
                {
                    "type": "number"
                },
                {
                    "type": "array",
                    "items": {
                        "type": "number"
                    },
                    "minItems": 1
                },
                {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "number"
                        },
                        "minItems": 1
                    },
                    "minItems": 1
                }
            ],
            "description": "For `SCALAR` this is a number. For `VECN` this is an array of `N` numbers. For `MATN` this is an array of `N²` numbers. For fixed-length arrays this is an array of `count` elements of the given `type`."
        },
        "noDataValue": {
            "title": "No Data Value",
            "oneOf": [
                {
                    "type": "number"
                },
                {
                    "type": "string"
                },
                {
                    "type": "array",
                    "items": {
                        "type": "number"
                    },
                    "minItems": 1
                },
                {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "minItems": 1
                },
                {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "number"
                        },
                        "minItems": 1
                    },
                    "minItems": 1
                }
            ],
            "description": "For `SCALAR` this is a number. For `STRING` this is a string. For `ENUM` this is a string that must be a valid enum `name`, not an integer value. For `VECN` this is an array of `N` numbers. For `MATN` this is an array of `N²` numbers. For fixed-length arrays this is an array of `count` elements of the given `type`."
        },
        "anyValue": {
            "title": "Any Value",
            "oneOf": [
                {
                    "type": "number"
                },
                {
                    "type": "string"
                },
                {
                    "type": "boolean"
                },
                {
                    "type": "array",
                    "items": {
                        "type": "number"
                    },
                    "minItems": 1
                },
                {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "minItems": 1
                },
                {
                    "type": "array",
                    "items": {
                        "type": "boolean"
                    },
                    "minItems": 1
                },
                {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "number"
                        },
                        "minItems": 1
                    },
                    "minItems": 1
                }
            ],
            "description": "For `SCALAR` this is a number. For `STRING` this is a string. For `ENUM` this is a string that must be a valid enum `name`, not an integer value. For `BOOLEAN` this is a boolean. For `VECN` this is an array of `N` numbers. For `MATN` this is an array of `N²` numbers. For fixed-length array this is an array of `count` elements of the given `type`. For variable-length arrays this is an array of any length of the given `type`."
        }
    }
}