{
    "title": "AuthoringInfo Visual Variable",
    "type": "object",
    "$schema": "http://json-schema.org/draft-04/schema",
    "description": "This visual variable is different from `sizeInfo`, `colorInfo`, `transparencyInfo`, and `rotationInfo` as it is an array of visual variables pertaining specifically to authoringInfo and not directly on the [renderer](renderer.md).",
    "properties": {
        "endTime": {
            "description": "A Unix stamp. Both `startTime` or `endTime` can be fields. If this is the case, their names must be different.",
            "oneOf": [
                {
                    "type": "number"
                },
                {
                    "type": "string"
                }
            ]
        },
        "field": {
            "type": "string",
            "description": "The attribute field the user chose in the Smart Mapping gallery. Must be the same as in either `startTime` or `endTime`."
        },
        "maxSliderValue": {
            "type": "number",
            "description": "A numeric value indicating the maximum value displayed."
        },
        "minSliderValue": {
            "type": "number",
            "description": "A numeric value indicating the minimum value displayed."
        },
        "startTime": {
            "description": "A Unix time stamp. Both `startTime` or `endTime` can be fields. If this is the case, their names must be different.",
            "oneOf": [
                {
                    "type": "number"
                },
                {
                    "type": "string"
                }
            ]
        },
        "style": {
            "type": "string",
            "description": "(This property is used for comparison rendering). It is used to map the ratio between two numbers. It is possible to express that relationship as percentages, simple ratios, or an overall percentage.",
            "enum": [
                "percent",
                "ratio",
                "percentTotal"
            ]
        },
        "theme": {
            "type": "string",
            "description": "Theme to be used only when working with visual variables of type `colorInfo`. Default is `high-to-low`.",
            "enum": [
                "high-to-low",
                "above-and-below",
                "centered-on",
                "extremes"
            ]
        },
        "type": {
            "type": "string",
            "description": "A string value specifying the type of renderer's visual variable.",
            "enum": [
                "colorInfo",
                "sizeInfo",
                "transparencyInfo",
                "rotationInfo"
            ]
        },
        "units": {
            "type": "string",
            "description": "(This property is used only with age renderers.) Units for startTime and endTime.",
            "enum": [
                "seconds",
                "minutes",
                "hours",
                "days",
                "months",
                "years"
            ]
        }
    },
    "additionalProperties": false,
    "esriDocumentation": {
        "examples": [
            {
                "title": "Attribute Transparency",
                "description": "Allows displaying features with different levels of opacity.",
                "code": {
                    "visualVariables": [
                        {
                            "type": "transparencyInfo",
                            "minSliderValue": 0.0003,
                            "maxSliderValue": 23.8951
                        }
                    ]
                }
            },
            {
                "title": "Continuous Size Renderer",
                "description": "If a layer contains date values, it is possible to use a sequence of proportional symbols to view dates sequentially on a scene.",
                "code": {
                    "visualVariables": [
                        {
                            "type": "sizeInfo",
                            "minSliderValue": 1,
                            "maxSliderValue": 14928.5396
                        }
                    ]
                }
            },
            {
                "title": "Continuous Color Renderer",
                "description": "If a layer contains date values, it is possible to use color to view data sequentially from new to old or before and after a key date.",
                "code": {
                    "visualVariables": [
                        {
                            "type": "colorInfo",
                            "minSliderValue": 1,
                            "maxSliderValue": 14928.5396,
                            "theme": "high-to-low"
                        }
                    ]
                }
            },
            {
                "title": "Age-Size Renderer",
                "description": "If a layer contains date or time values, it is possible to use a sequence of proportional symbols to view the age of features. Age reflects the length of time (in seconds, minutes, hours, days, months, or years) from a start date or time to an end date or time.",
                "code": {
                    "visualVariables": [
                        {
                            "type": "sizeInfo",
                            "minSliderValue": -129.2625,
                            "maxSliderValue": 234.7374,
                            "units": "days",
                            "startTime": "DATE",
                            "endTime": 1471970511924,
                            "field": "DATE"
                        }
                    ]
                }
            },
            {
                "title": "Age-Color Renderer",
                "description": "If a layer contains date or time values, it is possible to use color to represent the age of features. Age reflects the length of time (in seconds, minutes, hours, days, months, or years) from a start date or time to an end date or time.",
                "code": {
                    "visualVariables": [
                        {
                            "type": "colorInfo",
                            "minSliderValue": -129.2625,
                            "maxSliderValue": 234.7374,
                            "units": "days",
                            "startTime": "DATE",
                            "endTime": 1471970511924,
                            "field": "DATE",
                            "theme": "high-to-low"
                        }
                    ]
                }
            },
            {
                "title": "Compare Renderer (special color renderer)",
                "description": "This style allows mapping the ratio between two numbers and expresses that relationship as percentages, simple ratios, or overall percentage.",
                "code": {
                    "visualVariables": [
                        {
                            "type": "colorInfo",
                            "minSliderValue": 0.0003858501658018686,
                            "maxSliderValue": 23.89513157894737,
                            "theme": "above-and-below",
                            "style": "ratio"
                        }
                    ]
                }
            },
            {
                "title": "Predominance Renderer",
                "description": "This style uses transparency to show the relative strength of the predominant attribute for each feature in the layer. The strength, or degree, of predominance is calculated as a percentage of the total value of all the attributes for a given feature.",
                "schema": "authoringInfo_schema.json",
                "code": {
                    "authoringInfo": {
                        "type": "predominance",
                        "fields": [
                            "COST",
                            "DOLLARS",
                            "PRICE"
                        ],
                        "visualVariables": [
                            {
                                "type": "transparencyInfo",
                                "minSliderValue": 0,
                                "maxSliderValue": 100
                            }
                        ]
                    }
                }
            }
        ]
    }
}