{
    "definitions": {
        "axis": {
            "description": "Defines an axis of the image",
            "properties": {
                "Label": {
                    "description": "What to call this dimension.",
                    "type": "string"
                },
                "Resolution": {
                    "description": "The length of a voxel in this dimension.",
                    "minimum": 0,
                    "type": "number"
                },
                "Size": {
                    "description": "The span of the image (i.e., the number of voxels) in this dimension.",
                    "minimum": 0,
                    "type": "integer"
                },
                "Units": {
                    "description": "The units of length of a voxel in this dimension.",
                    "enum": [
                        "nanometers",
                        "micrometers",
                        "millimeters",
                        ""
                    ],
                    "type": "string"
                }
            },
            "required": [
                "Label",
                "Resolution",
                "Units",
                "Size"
            ],
            "type": "object"
        },
        "channel": {
            "description": "Describes the value type for a channel of data",
            "properties": {
                "DataType": {
                    "description": "The fixed-size data type for the value.",
                    "enum": [
                        "uint8",
                        "int8",
                        "uint16",
                        "int16",
                        "uint32",
                        "int32",
                        "uint64",
                        "int64",
                        "float32",
                        "float64"
                    ],
                    "type": "string"
                },
                "Label": {
                    "description": "The name of this value.",
                    "type": "string"
                }
            },
            "required": [
                "DataType"
            ],
            "type": "object"
        }
    },
    "description": "Supplies the meta data necessary to interpret N-dimensional image data returned by DVID",
    "properties": {
        "Axes": {
            "description": "Specifies the dimensions of the image. Order of the axes within the list specifies the ordering of the data. The first object in the list corresponds to the dimension whose index varies most rapidly as we move through the data bytes. The second object in the list corresponds to the 2nd most rapidly changing index, and so on.",
            "items": {
                "$ref": "#/definitions/axis"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "Properties": {
            "description": "Properties for datatype instance",
            "properties": {
                "Values": {
                    "description": "Specifies the interleaved values within one voxel of the n-D array. For example, a RGBA image would have four values, one for each of the colors and a fourth for the alpha channel.",
                    "items": {
                        "$ref": "#/definitions/channel"
                    },
                    "minItems": 1,
                    "type": "array"
                }
            },
            "required": [
                "Values"
            ],
            "type": "object"
        },
        "version": {
            "type": "string"
        }
    },
    "required": [
        "Axes",
        "Properties"
    ],
    "title": "N-dimensional Image Data",
    "type": "object",
    "version": "0.01"
}