[
    {
        "name": "VegaLite",
        "comment": " This module allows you to create Vega-Lite specifications in Elm. A specification\nis stored as a JSON object which can be sent to a Vega-Lite compiler to generate\nthe graphics. While this a 'pure' Elm library, to create the graphical output you\nprobably want to send a Vega-Lite specification generated by `toVegaLite` via a\nport to some JavaScript that invokes the Vega-Lite runtime.\n\n\n# Creating A Vega-Lite Specification\n\n@docs toVegaLite\n@docs VLProperty\n@docs Spec\n@docs LabelledSpec\n@docs combineSpecs\n\n\n# Creating the Data Specification\n\nFunctions and types for declaring the input data to the visualization.\n\n@docs dataFromUrl\n@docs dataFromColumns\n@docs dataFromRows\n@docs dataFromJson\n@docs dataFromSource\n@docs datasets\n@docs dataColumn\n@docs dataRow\n@docs geometry\n@docs geoFeatureCollection\n@docs geometryCollection\n@docs Data\n@docs DataColumn\n@docs DataRow\n@docs Format\n@docs Geometry\n@docs DataType\n\n\n# Creating the Transform Specification\n\nFunctions and types for declaring the transformation rules that are applied to\ndata fields or geospatial coordinates before they are encoded visually.\n\n@docs transform\n@docs projection\n@docs ProjectionProperty\n@docs Projection\n@docs ClipRect\n\n\n## Aggregation\n\n@docs aggregate\n@docs Operation\n@docs opAs\n@docs timeUnitAs\n\n\n## Binning\n\n@docs bin\n@docs binAs\n@docs BinProperty\n\n\n## Data Calculation\n\n@docs calculateAs\n\n\n## Filtering\n\n@docs filter\n@docs Filter\n@docs FilterRange\n\n\n## Relational Joining (lookup)\n\n@docs lookup\n@docs lookupAs\n\n\n# Creating the Mark Specification\n\nTypes and functions for declaring the type of visual marks used in the visualization.\n\n@docs mark\n@docs Mark\n@docs MarkProperty\n@docs MarkOrientation\n@docs MarkInterpolation\n@docs Symbol\n@docs Cursor\n\n\n# Creating the Encoding Specification\n\nTypes and functions for declaring which data fields are mapped to which channels.\nChannels can include position on screen (e.g. `X`,`Y`), visual mark properties\n(e.g. color, size, stroke, shape), text, hyperlinks, ordering, level of detail and facets\n(for composed visualizations). All can be further customised via a series of properties\nfor determining how that encoding is implemented (e.g. scaling, sorting, spacing).\n\n@docs encoding\n@docs Measurement\n\n\n## Position channel\n\nRelates to where something appears in the visualization.\n\n@docs position\n@docs PositionChannel\n@docs Position\n@docs SortProperty\n@docs StackProperty\n@docs AxisProperty\n@docs OverlapStrategy\n@docs Side\n@docs HAlign\n@docs VAlign\n@docs FontWeight\n@docs TimeUnit\n@docs utc\n\n\n## Mark channels\n\nRelate to the appearance of the visual marks in the visualization such as their\ncolor or size.\n\n@docs size\n@docs color\n@docs fill\n@docs stroke\n@docs opacity\n@docs shape\n@docs MarkChannel\n@docs LegendProperty\n@docs Legend\n@docs LegendOrientation\n@docs LegendValues\n\n\n## Text Channels\n\nRelate to the appearance of the text and tooltip elements of the visualization.\n\n@docs text\n@docs tooltip\n@docs TextChannel\n\n\n## Hyperlink Channel\n\nRelates to a clickable URL destination of a mark. Note that unlike most other\nchannels, the hyperlink channel has no direct visual expression other than the\noption of changing the cursor style when hovering, so an encoding will usually\npair hyperlinks with other visual channels such as marks or texts.\n\n@docs hyperlink\n@docs HyperlinkChannel\n\n\n## Order channels\n\nChannels that relate to the order of data fields such as for sorting stacking order\nor order of data points in a connected scatterplot. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#order)\nfor further details.\n\n@docs order\n@docs OrderChannel\n\n\n## Facet channels\n\nChannels for faceting single plots into small multiples. Can be used to create\ntrellis plots or other arrangements in rows and columns. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#facet)\nfor further details. See also, 'faceted view composition' for a more flexible (but\nmore verbose) way of defining faceted views.\n\n@docs row\n@docs column\n\n\n## Level of detail Channel\n\nUsed for grouping data but without changing the visual appearance of a mark. When,\nfor example, a field is encoded by color, all data items with the same value for\nthat field are given the same color. When a detail channel encodes a field, all\ndata items with the same value are placed in the same group. This allows, for example\na line chart with multiple lines to be created – one for each group. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#detail)\nfor more information.\n\n@docs detail\n@docs DetailChannel\n\n\n## Scaling\n\nUsed to specify how the encoding of a data field should be applied.\n\n@docs ScaleProperty\n@docs Scale\n@docs categoricalDomainMap\n@docs domainRangeMap\n@docs ScaleDomain\n@docs ScaleRange\n@docs ScaleNice\n@docs CInterpolate\n\n\n# Creating view compositions\n\nViews can be combined to create more complex multiview displays. This may involve\nlayering views on top of each other (superposition) or laying them out in adjacent\nspaces (juxtaposition using `repeat`, `facet`, `hConcat` or `vConcat`). Where different\nviews have potentially conflicting channels (for example, two position scales in\na layered visualization) the rules for resolving them can be defined with `resolve`.\nFor details of creating composite views see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/composition.html)\n\n@docs layer\n@docs hConcat\n@docs vConcat\n@docs resolve\n@docs resolution\n@docs Resolve\n@docs Channel\n@docs Resolution\n\n\n## Faceted views\n\nThese are small multiples each of which show subsets of the same dataset. The specification\ndetermines which field should be used to determine subsets along with their spatial\narrangement (in rows or columns). For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/facet.html)\n\n@docs repeat\n@docs RepeatFields\n@docs facet\n@docs FacetMapping\n@docs FacetChannel\n@docs asSpec\n@docs specification\n@docs Arrangement\n@docs HeaderProperty\n\n\n# Creating Selections for Interaction\n\nSelections are the way in which interactions (such as clicking or dragging) can be\nresponded to in a visualization. They transform interactions into data queries.\nFor details, see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/selection.html).\n\n@docs selection\n@docs select\n@docs Selection\n@docs SelectionProperty\n@docs Binding\n@docs InputProperty\n@docs SelectionResolution\n@docs SelectionMarkProperty\n\n\n## Making conditional channel encodings\n\nSometimes it is useful to make channel encoding conditional on something. For example,\non the result of some interaction such as clicking or dragging or some data property\nsuch whether null or an outlier. `MSelectionCondition` (and `TSelectionCondition`) will\nencode a mark (or text) dependent on an interactive selection. `MDataCondition`\n(and `TDataCondition`) will encode it dependening on some data property.\n\nFor interaction, once a selection has been defined and named, supplying a set of\n`MSelectionCondition` encodings allow mark encodings to become dependent on that selection.\n`MSelectionCondition` is followed firstly by a Boolean expression relating to the\nselection upon which it is dependent, then an 'if' and an 'else' clause. Each clause\nis a list of mark field encodings that should be applied when the selection is true\n(the 'if clause') and when it is false (the 'else clause'). The color encoding below\nis saying \"whenever data marks are selected with an interval mouse drag, encode\nthe cylinder field with an ordinal color scheme, else make them grey\".\n\n      sel =\n          selection << select \"myBrush\" Interval []\n\n      enc =\n          encoding\n              << position X [ PName \"Horsepower\", PmType Quantitative ]\n              << position Y [ PName \"Miles_per_Gallon\", PmType Quantitative ]\n              << color\n                  [ MSelectionCondition (SelectionName \"myBrush\")\n                      [ MName \"Cylinders\", MmType Ordinal ]\n                      [ MString \"grey\" ]\n                  ]\n\nIn a similar way, `MDataCondition` will encocode a mark in one of two ways depending\non whether a predicate test is satisfied.\n\n      enc =\n          encoding\n              << position X [ PName \"IMDB_Rating\", PmType Quantitative ]\n              << position Y [ PName \"Rotten_Tomatoes_Rating\", PmType Quantitative ]\n                << color\n                    [ MDataCondition\n                        (Or (Expr \"datum.IMDB_Rating === null\")\n                            (Expr \"datum.Rotten_Tomatoes_Rating === null\")\n                        )\n                        [ MString \"#ddd\" ]\n                        [ MString \"#0099ee\" ]\n                    ]\n\nFor details, see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/condition.html).\n\n@docs BooleanOp\n\n\n# Global Configuration\n\nConfiguration options that affect the entire visualization. These are in addition\nto the data and transform options described above.\n\n@docs name\n@docs title\n@docs description\n@docs height\n@docs width\n@docs padding\n@docs autosize\n@docs background\n@docs configure\n@docs configuration\n@docs ConfigurationProperty\n@docs Autosize\n@docs Padding\n@docs AxisConfig\n@docs LegendConfig\n@docs ScaleConfig\n@docs TitleConfig\n@docs APosition\n@docs ViewConfig\n@docs RangeConfig\n\n\n# General Data types\n\nIn addition to more general data types like integers and string, the following types\ncan carry data used in specifications.\n\n@docs DataValue\n@docs DataValues\n@docs DateTime\n@docs MonthName\n@docs DayName\n\n",
        "unions": [
            {
                "name": "APosition",
                "comment": " Indicates the anchor position for some text.\n",
                "args": [],
                "cases": [
                    [
                        "AStart",
                        []
                    ],
                    [
                        "AMiddle",
                        []
                    ],
                    [
                        "AEnd",
                        []
                    ]
                ]
            },
            {
                "name": "Arrangement",
                "comment": " Idenfies whether a repeated/faceted view is arranged in rows or columns.\n",
                "args": [],
                "cases": [
                    [
                        "Column",
                        []
                    ],
                    [
                        "Row",
                        []
                    ]
                ]
            },
            {
                "name": "Autosize",
                "comment": " Indicates the auto-sizing characteristics of the visualization such as amount\nof padding, whether it should fill the parent container etc. For more details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/size.html#autosize)\n",
                "args": [],
                "cases": [
                    [
                        "AContent",
                        []
                    ],
                    [
                        "AFit",
                        []
                    ],
                    [
                        "ANone",
                        []
                    ],
                    [
                        "APad",
                        []
                    ],
                    [
                        "APadding",
                        []
                    ],
                    [
                        "AResize",
                        []
                    ]
                ]
            },
            {
                "name": "AxisConfig",
                "comment": " Axis configuration options for customising all axes. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/axis.html#general-config)\nfor more details.\n",
                "args": [],
                "cases": [
                    [
                        "BandPosition",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Domain",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "DomainColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "DomainWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MaxExtent",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MinExtent",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Grid",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "GridColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "GridDash",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "GridOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "GridWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Labels",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "LabelAngle",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LabelColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LabelFont",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LabelFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LabelLimit",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LabelOverlap",
                        [
                            "OverlapStrategy"
                        ]
                    ],
                    [
                        "LabelPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "ShortTimeLabels",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "Ticks",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "TickColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TickRound",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "TickSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TickWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitleAlign",
                        [
                            "HAlign"
                        ]
                    ],
                    [
                        "TitleAngle",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitleBaseline",
                        [
                            "VAlign"
                        ]
                    ],
                    [
                        "TitleColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TitleFont",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TitleFontWeight",
                        [
                            "FontWeight"
                        ]
                    ],
                    [
                        "TitleFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitleLimit",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitleMaxLength",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitlePadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitleX",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TitleY",
                        [
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "AxisProperty",
                "comment": " Axis customisation properties. These are used for customising individual axes.\nTo configure all axes, use `AxisConfig` with a `configuration` instead. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/axis.html#axis-properties)\nfor more details.\n",
                "args": [],
                "cases": [
                    [
                        "AxDomain",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "AxFormat",
                        [
                            "String"
                        ]
                    ],
                    [
                        "AxGrid",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "AxLabelAngle",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxLabelOverlap",
                        [
                            "OverlapStrategy"
                        ]
                    ],
                    [
                        "AxLabelPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxLabels",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "AxMaxExtent",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxMinExtent",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxOffset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxOrient",
                        [
                            "Side"
                        ]
                    ],
                    [
                        "AxPosition",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxTicks",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "AxTickCount",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "AxTickSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxTitle",
                        [
                            "String"
                        ]
                    ],
                    [
                        "AxTitleAlign",
                        [
                            "HAlign"
                        ]
                    ],
                    [
                        "AxTitleAngle",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxTitleMaxLength",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxTitlePadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "AxValues",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "AxDates",
                        [
                            "List (List DateTime)"
                        ]
                    ],
                    [
                        "AxZIndex",
                        [
                            "Int"
                        ]
                    ]
                ]
            },
            {
                "name": "BinProperty",
                "comment": " Type of binning property to customise. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/bin.html) for\nmore details.\n",
                "args": [],
                "cases": [
                    [
                        "Base",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Divide",
                        [
                            "Float",
                            "Float"
                        ]
                    ],
                    [
                        "Extent",
                        [
                            "Float",
                            "Float"
                        ]
                    ],
                    [
                        "MaxBins",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "MinStep",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Nice",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "Step",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Steps",
                        [
                            "List Float"
                        ]
                    ]
                ]
            },
            {
                "name": "Binding",
                "comment": " Describes the binding property of a selection based on some HTML input element\nsuch as a checkbox or radio button. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/bind.html#scale-binding)\nand the [Vega input binding documentation](https://vega.github.io/vega/docs/signals/#bind)\n",
                "args": [],
                "cases": [
                    [
                        "IRange",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "ICheckbox",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IRadio",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "ISelect",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IText",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "INumber",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IDate",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "ITime",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IMonth",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IWeek",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IDateTimeLocal",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "ITel",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ],
                    [
                        "IColor",
                        [
                            "String",
                            "List InputProperty"
                        ]
                    ]
                ]
            },
            {
                "name": "BooleanOp",
                "comment": " Used for creating logical compositions. For example\n\n    color\n        [ MSelectionCondition (Or (SelectionName \"alex\") (SelectionName \"morgan\"))\n            [ MAggregate Count, MName \"*\", MmType Quantitative ]\n            [ MString \"gray\" ]\n        ]\n\nLogical compositions can be nested to any level. For example\n\n    Not (And (Expr \"datum.IMDB_Rating === null\") (Expr \"datum.Rotten_Tomatoes_Rating === null\") )\n\n",
                "args": [],
                "cases": [
                    [
                        "Expr",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Selection",
                        [
                            "String"
                        ]
                    ],
                    [
                        "SelectionName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "And",
                        [
                            "BooleanOp",
                            "BooleanOp"
                        ]
                    ],
                    [
                        "Or",
                        [
                            "BooleanOp",
                            "BooleanOp"
                        ]
                    ],
                    [
                        "Not",
                        [
                            "BooleanOp"
                        ]
                    ]
                ]
            },
            {
                "name": "CInterpolate",
                "comment": " Indicates the type of color interpolation to apply, when mapping a data field\nonto a color scale. Note that color interpolation cannot be applied with the default\n`sequential` color scale, so additionally, you should set the `SType` to another\ncontinuous scale such as `linear`, `pow` etc.\n\nOf the interpolation options below `Rgb`, `CubeHelix` and `CubeHelixLong` also require\na `gamma` value (with 1 being a recommended default to provide). For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/scale.html#continuous).\n\n",
                "args": [],
                "cases": [
                    [
                        "CubeHelix",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "CubeHelixLong",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Hcl",
                        []
                    ],
                    [
                        "HclLong",
                        []
                    ],
                    [
                        "Hsl",
                        []
                    ],
                    [
                        "HslLong",
                        []
                    ],
                    [
                        "Lab",
                        []
                    ],
                    [
                        "Rgb",
                        [
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "Channel",
                "comment": " Indicates a channel type to be used in a resolution specification.\n",
                "args": [],
                "cases": [
                    [
                        "ChX",
                        []
                    ],
                    [
                        "ChY",
                        []
                    ],
                    [
                        "ChX2",
                        []
                    ],
                    [
                        "ChY2",
                        []
                    ],
                    [
                        "ChColor",
                        []
                    ],
                    [
                        "ChOpacity",
                        []
                    ],
                    [
                        "ChShape",
                        []
                    ],
                    [
                        "ChSize",
                        []
                    ]
                ]
            },
            {
                "name": "ClipRect",
                "comment": " Specifies a clipping rectangle in pixel units. In `LTRB` the order of the four\nnumbers that follow are 'left', 'top', 'right' then 'bottom'. Used when defining\nthe clip extent of a map projection.\n",
                "args": [],
                "cases": [
                    [
                        "NoClip",
                        []
                    ],
                    [
                        "LTRB",
                        [
                            "Float",
                            "Float",
                            "Float",
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "ConfigurationProperty",
                "comment": " Type of configuration property to customise. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/config.html)\nfor details.\n",
                "args": [],
                "cases": [
                    [
                        "AreaStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "Autosize",
                        [
                            "List Autosize"
                        ]
                    ],
                    [
                        "Axis",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisX",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisY",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisLeft",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisRight",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisTop",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisBottom",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "AxisBand",
                        [
                            "List AxisConfig"
                        ]
                    ],
                    [
                        "Background",
                        [
                            "String"
                        ]
                    ],
                    [
                        "BarStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "CircleStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "CountTitle",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FieldTitle",
                        [
                            "FieldTitleProperty"
                        ]
                    ],
                    [
                        "Legend",
                        [
                            "List LegendConfig"
                        ]
                    ],
                    [
                        "LineStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "MarkStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "NamedStyle",
                        [
                            "String",
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "NumberFormat",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Padding",
                        [
                            "Padding"
                        ]
                    ],
                    [
                        "PointStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "Projection",
                        [
                            "List ProjectionProperty"
                        ]
                    ],
                    [
                        "Range",
                        [
                            "List RangeConfig"
                        ]
                    ],
                    [
                        "RectStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "RemoveInvalid",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "RuleStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "Scale",
                        [
                            "List ScaleConfig"
                        ]
                    ],
                    [
                        "SelectionStyle",
                        [
                            "List ( Selection, List SelectionProperty )"
                        ]
                    ],
                    [
                        "SquareStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "Stack",
                        [
                            "StackProperty"
                        ]
                    ],
                    [
                        "TextStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "TickStyle",
                        [
                            "List MarkProperty"
                        ]
                    ],
                    [
                        "TitleStyle",
                        [
                            "List TitleConfig"
                        ]
                    ],
                    [
                        "TimeFormat",
                        [
                            "String"
                        ]
                    ],
                    [
                        "View",
                        [
                            "List ViewConfig"
                        ]
                    ]
                ]
            },
            {
                "name": "Cursor",
                "comment": " Represents the type of cursor to display. For an explanation of each type,\nsee the [CSS documentation](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Keyword%20values)\n",
                "args": [],
                "cases": [
                    [
                        "CAuto",
                        []
                    ],
                    [
                        "CDefault",
                        []
                    ],
                    [
                        "CNone",
                        []
                    ],
                    [
                        "CContextMenu",
                        []
                    ],
                    [
                        "CHelp",
                        []
                    ],
                    [
                        "CPointer",
                        []
                    ],
                    [
                        "CProgress",
                        []
                    ],
                    [
                        "CWait",
                        []
                    ],
                    [
                        "CCell",
                        []
                    ],
                    [
                        "CCrosshair",
                        []
                    ],
                    [
                        "CText",
                        []
                    ],
                    [
                        "CVerticalText",
                        []
                    ],
                    [
                        "CAlias",
                        []
                    ],
                    [
                        "CCopy",
                        []
                    ],
                    [
                        "CMove",
                        []
                    ],
                    [
                        "CNoDrop",
                        []
                    ],
                    [
                        "CNotAllowed",
                        []
                    ],
                    [
                        "CAllScroll",
                        []
                    ],
                    [
                        "CColResize",
                        []
                    ],
                    [
                        "CRowResize",
                        []
                    ],
                    [
                        "CNResize",
                        []
                    ],
                    [
                        "CEResize",
                        []
                    ],
                    [
                        "CSResize",
                        []
                    ],
                    [
                        "CWResize",
                        []
                    ],
                    [
                        "CNEResize",
                        []
                    ],
                    [
                        "CNWResize",
                        []
                    ],
                    [
                        "CSEResize",
                        []
                    ],
                    [
                        "CSWResize",
                        []
                    ],
                    [
                        "CEWResize",
                        []
                    ],
                    [
                        "CNSResize",
                        []
                    ],
                    [
                        "CNESWResize",
                        []
                    ],
                    [
                        "CNWSEResize",
                        []
                    ],
                    [
                        "CZoomIn",
                        []
                    ],
                    [
                        "CZoomOut",
                        []
                    ],
                    [
                        "CGrab",
                        []
                    ],
                    [
                        "CGrabbing",
                        []
                    ]
                ]
            },
            {
                "name": "DataType",
                "comment": " Indicates the type of data to be parsed when reading input data. For `FoDate`\nand `FoUtc`, the formatting specification can be specified using\n[D3's formatting specifiers](https://vega.github.io/vega-lite/docs/data.html#format)\nor left as an empty string if default date formatting is to be applied. Care should\nbe taken when assuming default parsing of dates because different browsers can\nparse dates differently. Being explicit about the date format is usually safer.\n",
                "args": [],
                "cases": [
                    [
                        "FoNumber",
                        []
                    ],
                    [
                        "FoBoolean",
                        []
                    ],
                    [
                        "FoDate",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FoUtc",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "DataValue",
                "comment": " A single data value. This is used when a function can accept values of different\ntypes (e.g. either a number or a string).\n",
                "args": [],
                "cases": [
                    [
                        "Boolean",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "DateTime",
                        [
                            "List DateTime"
                        ]
                    ],
                    [
                        "Number",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Str",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "DataValues",
                "comment": " A list of data values. This is used when a function can accept lists of\ndifferent types (e.g. either a list of numbers or a list of strings).\n",
                "args": [],
                "cases": [
                    [
                        "Booleans",
                        [
                            "List Bool"
                        ]
                    ],
                    [
                        "DateTimes",
                        [
                            "List (List DateTime)"
                        ]
                    ],
                    [
                        "Numbers",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "Strings",
                        [
                            "List String"
                        ]
                    ]
                ]
            },
            {
                "name": "DateTime",
                "comment": " Allows a date or time to be represented. This is typically part of a list of\n`DateTime` items to provide a specific point in time. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/types.html#datetime).\n",
                "args": [],
                "cases": [
                    [
                        "DTYear",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DTQuarter",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DTMonth",
                        [
                            "MonthName"
                        ]
                    ],
                    [
                        "DTDate",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DTDay",
                        [
                            "DayName"
                        ]
                    ],
                    [
                        "DTHours",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DTMinutes",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DTSeconds",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DTMilliseconds",
                        [
                            "Int"
                        ]
                    ]
                ]
            },
            {
                "name": "DayName",
                "comment": " Identifies the day of the week.\n",
                "args": [],
                "cases": [
                    [
                        "Mon",
                        []
                    ],
                    [
                        "Tue",
                        []
                    ],
                    [
                        "Wed",
                        []
                    ],
                    [
                        "Thu",
                        []
                    ],
                    [
                        "Fri",
                        []
                    ],
                    [
                        "Sat",
                        []
                    ],
                    [
                        "Sun",
                        []
                    ]
                ]
            },
            {
                "name": "DetailChannel",
                "comment": " Level of detail channel properties used for creating a grouped channel encoding.\n",
                "args": [],
                "cases": [
                    [
                        "DName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "DmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "DBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "DTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "DAggregate",
                        [
                            "Operation"
                        ]
                    ]
                ]
            },
            {
                "name": "FacetChannel",
                "comment": " Types of facet channel property used for creating a composed facet view of small\nmultiples.\n",
                "args": [],
                "cases": [
                    [
                        "FName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "FBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "FAggregate",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "FTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "FHeader",
                        [
                            "List HeaderProperty"
                        ]
                    ]
                ]
            },
            {
                "name": "FacetMapping",
                "comment": " Provides details of the mapping between a row or column and its field\ndefinitions in a set of faceted small multiples. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/facet.html#mapping)\n",
                "args": [],
                "cases": [
                    [
                        "ColumnBy",
                        [
                            "List FacetChannel"
                        ]
                    ],
                    [
                        "RowBy",
                        [
                            "List FacetChannel"
                        ]
                    ]
                ]
            },
            {
                "name": "Filter",
                "comment": " Type of filtering operation. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/filter.html)\nfor details.\n",
                "args": [],
                "cases": [
                    [
                        "FEqual",
                        [
                            "String",
                            "DataValue"
                        ]
                    ],
                    [
                        "FExpr",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FCompose",
                        [
                            "BooleanOp"
                        ]
                    ],
                    [
                        "FSelection",
                        [
                            "String"
                        ]
                    ],
                    [
                        "FOneOf",
                        [
                            "String",
                            "DataValues"
                        ]
                    ],
                    [
                        "FRange",
                        [
                            "String",
                            "FilterRange"
                        ]
                    ]
                ]
            },
            {
                "name": "FilterRange",
                "comment": " A pair of filter range data values. The first argument is the inclusive minimum\nvale to accept and the second the inclusive maximum.\n",
                "args": [],
                "cases": [
                    [
                        "NumberRange",
                        [
                            "Float",
                            "Float"
                        ]
                    ],
                    [
                        "DateRange",
                        [
                            "List DateTime",
                            "List DateTime"
                        ]
                    ]
                ]
            },
            {
                "name": "FontWeight",
                "comment": " Indicates the weight options for a font.\n",
                "args": [],
                "cases": [
                    [
                        "Bold",
                        []
                    ],
                    [
                        "Bolder",
                        []
                    ],
                    [
                        "Lighter",
                        []
                    ],
                    [
                        "Normal",
                        []
                    ],
                    [
                        "W100",
                        []
                    ],
                    [
                        "W200",
                        []
                    ],
                    [
                        "W300",
                        []
                    ],
                    [
                        "W400",
                        []
                    ],
                    [
                        "W500",
                        []
                    ],
                    [
                        "W600",
                        []
                    ],
                    [
                        "W700",
                        []
                    ],
                    [
                        "W800",
                        []
                    ],
                    [
                        "W900",
                        []
                    ]
                ]
            },
            {
                "name": "Format",
                "comment": " Specifies the type of format a data source uses. If the format is indicated by\nthe file name extension (`.tsv`, `.csv`, `.json`) there is no need to indicate the\nformat explicitly. However this can be useful if (a) the filename extension does not\nindicate type (e.g. `.txt`) or you wish to customise the parsing of a file. For\nexample, when specifying the `JSON` format, its parameter indicates the name of\nproperty field containing the attribute data to extract. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/data.html#format).\n",
                "args": [],
                "cases": [
                    [
                        "JSON",
                        [
                            "String"
                        ]
                    ],
                    [
                        "CSV",
                        []
                    ],
                    [
                        "TSV",
                        []
                    ],
                    [
                        "TopojsonFeature",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TopojsonMesh",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Parse",
                        [
                            "List ( String, DataType )"
                        ]
                    ]
                ]
            },
            {
                "name": "Geometry",
                "comment": " Specifies the type and content of geometry specifications for programatically\ncreating GeoShapes. These can be mapped to the\n[GeoJson geometry object types](https://tools.ietf.org/html/rfc7946#section-3.1)\nwhere the pluralised type names refer to their `Multi` prefixed equivalent in the\nGeoJSON specification.\n",
                "args": [],
                "cases": [
                    [
                        "GeoPoint",
                        [
                            "Float",
                            "Float"
                        ]
                    ],
                    [
                        "GeoPoints",
                        [
                            "List ( Float, Float )"
                        ]
                    ],
                    [
                        "GeoLine",
                        [
                            "List ( Float, Float )"
                        ]
                    ],
                    [
                        "GeoLines",
                        [
                            "List (List ( Float, Float ))"
                        ]
                    ],
                    [
                        "GeoPolygon",
                        [
                            "List (List ( Float, Float ))"
                        ]
                    ],
                    [
                        "GeoPolygons",
                        [
                            "List (List (List ( Float, Float )))"
                        ]
                    ]
                ]
            },
            {
                "name": "HAlign",
                "comment": " Indicates the horizontal alignment of some text such as on an axis or legend.\n",
                "args": [],
                "cases": [
                    [
                        "AlignCenter",
                        []
                    ],
                    [
                        "AlignLeft",
                        []
                    ],
                    [
                        "AlignRight",
                        []
                    ]
                ]
            },
            {
                "name": "HeaderProperty",
                "comment": " Represents a facet header property. For details, see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/facet.html#header)\n",
                "args": [],
                "cases": [
                    [
                        "HFormat",
                        [
                            "String"
                        ]
                    ],
                    [
                        "HTitle",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "HyperlinkChannel",
                "comment": " Types of hyperlink channel property used for linking marks or text to URLs.\n",
                "args": [],
                "cases": [
                    [
                        "HName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "HRepeat",
                        [
                            "Arrangement"
                        ]
                    ],
                    [
                        "HmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "HBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "HAggregate",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "HTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "HSelectionCondition",
                        [
                            "BooleanOp",
                            "List HyperlinkChannel",
                            "List HyperlinkChannel"
                        ]
                    ],
                    [
                        "HDataCondition",
                        [
                            "BooleanOp",
                            "List HyperlinkChannel",
                            "List HyperlinkChannel"
                        ]
                    ],
                    [
                        "HString",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "InputProperty",
                "comment": " GUI Input properties. The type of relevant property will depend on the type of\ninput element selected. For example an `InRange` (slider) can have numeric min,\nmax and step values; InSelect (selector) has a list of selection label options.\nFor details see the\n[Vega input element binding documentation](https://vega.github.io/vega/docs/signals/#bind).\nThe `debounce` property, available for all input types allows a delay in input event\nhandling to be added in order to avoid unnecessary event broadcasting. The `Element`\nproperty is an optional CSS selector indicating the parent element to which the\ninput element should be added. This allows the option of the input element to be\noutside the visualization container.\n",
                "args": [],
                "cases": [
                    [
                        "Debounce",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Element",
                        [
                            "String"
                        ]
                    ],
                    [
                        "InOptions",
                        [
                            "List String"
                        ]
                    ],
                    [
                        "InMin",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "InMax",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "InName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "InStep",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "InPlaceholder",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "Legend",
                "comment": " Indicates the type of legend to create. Gradient legends are usually used for\ncontinuous quantitative data while symbol legends used for categorical data.\n",
                "args": [],
                "cases": [
                    [
                        "Gradient",
                        []
                    ],
                    [
                        "Symbol",
                        []
                    ]
                ]
            },
            {
                "name": "LegendConfig",
                "comment": " Legend configuration options. For more detail see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/legend.html#config).\n",
                "args": [],
                "cases": [
                    [
                        "CornerRadius",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "FillColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Orient",
                        [
                            "LegendOrientation"
                        ]
                    ],
                    [
                        "Offset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "StrokeColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LeStrokeDash",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "LeStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LePadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "GradientLabelBaseline",
                        [
                            "VAlign"
                        ]
                    ],
                    [
                        "GradientLabelLimit",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "GradientLabelOffset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "GradientStrokeColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "GradientStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "GradientHeight",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "GradientWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeLabelAlign",
                        [
                            "HAlign"
                        ]
                    ],
                    [
                        "LeLabelBaseline",
                        [
                            "VAlign"
                        ]
                    ],
                    [
                        "LeLabelColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LeLabelFont",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LeLabelFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeLabelLimit",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeLabelOffset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeShortTimeLabels",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "EntryPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SymbolColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "SymbolType",
                        [
                            "Symbol"
                        ]
                    ],
                    [
                        "SymbolSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SymbolStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeTitleAlign",
                        [
                            "HAlign"
                        ]
                    ],
                    [
                        "LeTitleBaseline",
                        [
                            "VAlign"
                        ]
                    ],
                    [
                        "LeTitleColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LeTitleFont",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LeTitleFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeTitleFontWeight",
                        [
                            "FontWeight"
                        ]
                    ],
                    [
                        "LeTitleLimit",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LeTitlePadding",
                        [
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "LegendOrientation",
                "comment": " Indicates the legend orientation. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/legend.html#config)\nfor more details.\n",
                "args": [],
                "cases": [
                    [
                        "BottomLeft",
                        []
                    ],
                    [
                        "BottomRight",
                        []
                    ],
                    [
                        "Left",
                        []
                    ],
                    [
                        "None",
                        []
                    ],
                    [
                        "Right",
                        []
                    ],
                    [
                        "TopLeft",
                        []
                    ],
                    [
                        "TopRight",
                        []
                    ]
                ]
            },
            {
                "name": "LegendProperty",
                "comment": " Legend properties. For more detail see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/legend.html#legend-properties).\n",
                "args": [],
                "cases": [
                    [
                        "LEntryPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LFormat",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LOffset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LOrient",
                        [
                            "LegendOrientation"
                        ]
                    ],
                    [
                        "LPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LTickCount",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "LTitle",
                        [
                            "String"
                        ]
                    ],
                    [
                        "LType",
                        [
                            "Legend"
                        ]
                    ],
                    [
                        "LValues",
                        [
                            "LegendValues"
                        ]
                    ],
                    [
                        "LZIndex",
                        [
                            "Int"
                        ]
                    ]
                ]
            },
            {
                "name": "LegendValues",
                "comment": " A list of data values suitable for setting legend values.\n",
                "args": [],
                "cases": [
                    [
                        "LDateTimes",
                        [
                            "List (List DateTime)"
                        ]
                    ],
                    [
                        "LNumbers",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "LStrings",
                        [
                            "List String"
                        ]
                    ]
                ]
            },
            {
                "name": "Mark",
                "comment": " Type of visual mark used to represent data in the visualization.\n",
                "args": [],
                "cases": [
                    [
                        "Area",
                        []
                    ],
                    [
                        "Bar",
                        []
                    ],
                    [
                        "Circle",
                        []
                    ],
                    [
                        "Geoshape",
                        []
                    ],
                    [
                        "Line",
                        []
                    ],
                    [
                        "Point",
                        []
                    ],
                    [
                        "Rect",
                        []
                    ],
                    [
                        "Rule",
                        []
                    ],
                    [
                        "Square",
                        []
                    ],
                    [
                        "Text",
                        []
                    ],
                    [
                        "Tick",
                        []
                    ]
                ]
            },
            {
                "name": "MarkChannel",
                "comment": " Mark channel properties used for creating a mark channel encoding. Providing\nan empty list to `MScale`, or `MLegend` removes the scaling and legend respectively.\n",
                "args": [],
                "cases": [
                    [
                        "MName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MRepeat",
                        [
                            "Arrangement"
                        ]
                    ],
                    [
                        "MmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "MScale",
                        [
                            "List ScaleProperty"
                        ]
                    ],
                    [
                        "MBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "MTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "MAggregate",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "MLegend",
                        [
                            "List LegendProperty"
                        ]
                    ],
                    [
                        "MSelectionCondition",
                        [
                            "BooleanOp",
                            "List MarkChannel",
                            "List MarkChannel"
                        ]
                    ],
                    [
                        "MDataCondition",
                        [
                            "BooleanOp",
                            "List MarkChannel",
                            "List MarkChannel"
                        ]
                    ],
                    [
                        "MPath",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MNumber",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MString",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MBoolean",
                        [
                            "Bool"
                        ]
                    ]
                ]
            },
            {
                "name": "MarkInterpolation",
                "comment": " Indicates mark interpolation style. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/mark.html#mark-def)\nfor details.\n",
                "args": [],
                "cases": [
                    [
                        "Basis",
                        []
                    ],
                    [
                        "BasisClosed",
                        []
                    ],
                    [
                        "BasisOpen",
                        []
                    ],
                    [
                        "Bundle",
                        []
                    ],
                    [
                        "Cardinal",
                        []
                    ],
                    [
                        "CardinalClosed",
                        []
                    ],
                    [
                        "CardinalOpen",
                        []
                    ],
                    [
                        "Linear",
                        []
                    ],
                    [
                        "LinearClosed",
                        []
                    ],
                    [
                        "Monotone",
                        []
                    ],
                    [
                        "StepAfter",
                        []
                    ],
                    [
                        "StepBefore",
                        []
                    ],
                    [
                        "Stepwise",
                        []
                    ]
                ]
            },
            {
                "name": "MarkOrientation",
                "comment": " Indicates desired orientation of a mark (e.g. horizontally or vertically\noriented bars.)\n",
                "args": [],
                "cases": [
                    [
                        "Horizontal",
                        []
                    ],
                    [
                        "Vertical",
                        []
                    ]
                ]
            },
            {
                "name": "MarkProperty",
                "comment": " Properties for customising the appearance of a mark. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/mark.html#config).\n",
                "args": [],
                "cases": [
                    [
                        "MAlign",
                        [
                            "HAlign"
                        ]
                    ],
                    [
                        "MAngle",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MBandSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MBaseline",
                        [
                            "VAlign"
                        ]
                    ],
                    [
                        "MBinSpacing",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MClip",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "MColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MCursor",
                        [
                            "Cursor"
                        ]
                    ],
                    [
                        "MContinuousBandSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MDiscreteBandSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MdX",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MdY",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MFill",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MFilled",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "MFillOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MFont",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MFontStyle",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MFontWeight",
                        [
                            "FontWeight"
                        ]
                    ],
                    [
                        "MInterpolate",
                        [
                            "MarkInterpolation"
                        ]
                    ],
                    [
                        "MOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MOrient",
                        [
                            "MarkOrientation"
                        ]
                    ],
                    [
                        "MRadius",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MShape",
                        [
                            "Symbol"
                        ]
                    ],
                    [
                        "MShortTimeLabels",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "MSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MStroke",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MStrokeDash",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "MStrokeDashOffset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MStrokeOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MStyle",
                        [
                            "List String"
                        ]
                    ],
                    [
                        "MTension",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MText",
                        [
                            "String"
                        ]
                    ],
                    [
                        "MTheta",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "MThickness",
                        [
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "Measurement",
                "comment": " Type of measurement to be associated with some channel. `Nominal` data are\ncategories identified by name alone and which have no intrinsic order. `Ordinal`\ndata are also categories, but ones which have some natural order. `Quantitative`\ndata are numeric measurements typically on a continuous scale. `Temporal` data\ndescribe time.\n\nGeospatial position encoding (`Longitude` and `Latitude`) should specify the `PmType`\nas `Quantitative`. Geographically referenced features encoded as `shape` marks\nshould specify `MmType` as `GeoFeature` (Vega-Lite currently refers to this type\nas [geojson](https://vega.github.io/vega-lite/docs/encoding.html)).\n\n",
                "args": [],
                "cases": [
                    [
                        "Nominal",
                        []
                    ],
                    [
                        "Ordinal",
                        []
                    ],
                    [
                        "Quantitative",
                        []
                    ],
                    [
                        "Temporal",
                        []
                    ],
                    [
                        "GeoFeature",
                        []
                    ]
                ]
            },
            {
                "name": "MonthName",
                "comment": " Idntifies a month of the year.\n",
                "args": [],
                "cases": [
                    [
                        "Jan",
                        []
                    ],
                    [
                        "Feb",
                        []
                    ],
                    [
                        "Mar",
                        []
                    ],
                    [
                        "Apr",
                        []
                    ],
                    [
                        "May",
                        []
                    ],
                    [
                        "Jun",
                        []
                    ],
                    [
                        "Jul",
                        []
                    ],
                    [
                        "Aug",
                        []
                    ],
                    [
                        "Sep",
                        []
                    ],
                    [
                        "Oct",
                        []
                    ],
                    [
                        "Nov",
                        []
                    ],
                    [
                        "Dec",
                        []
                    ]
                ]
            },
            {
                "name": "Operation",
                "comment": " Type of aggregation operation. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/aggregate.html#ops)\nfor more details.\n",
                "args": [],
                "cases": [
                    [
                        "ArgMax",
                        []
                    ],
                    [
                        "ArgMin",
                        []
                    ],
                    [
                        "Average",
                        []
                    ],
                    [
                        "CI0",
                        []
                    ],
                    [
                        "CI1",
                        []
                    ],
                    [
                        "Count",
                        []
                    ],
                    [
                        "Distinct",
                        []
                    ],
                    [
                        "Max",
                        []
                    ],
                    [
                        "Mean",
                        []
                    ],
                    [
                        "Median",
                        []
                    ],
                    [
                        "Min",
                        []
                    ],
                    [
                        "Missing",
                        []
                    ],
                    [
                        "Q1",
                        []
                    ],
                    [
                        "Q3",
                        []
                    ],
                    [
                        "Stderr",
                        []
                    ],
                    [
                        "Stdev",
                        []
                    ],
                    [
                        "StdevP",
                        []
                    ],
                    [
                        "Sum",
                        []
                    ],
                    [
                        "Valid",
                        []
                    ],
                    [
                        "Variance",
                        []
                    ],
                    [
                        "VarianceP",
                        []
                    ]
                ]
            },
            {
                "name": "OrderChannel",
                "comment": " Properties of an ordering channel used for sorting data fields.\n",
                "args": [],
                "cases": [
                    [
                        "OName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "ORepeat",
                        [
                            "Arrangement"
                        ]
                    ],
                    [
                        "OmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "OBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "OAggregate",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "OTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "OSort",
                        [
                            "List SortProperty"
                        ]
                    ]
                ]
            },
            {
                "name": "OverlapStrategy",
                "comment": " Type of overlap strategy to be applied when there is not space to show all items\non an axis. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/axis.html#labels)\nfor more details.\n",
                "args": [],
                "cases": [
                    [
                        "ONone",
                        []
                    ],
                    [
                        "OParity",
                        []
                    ],
                    [
                        "OGreedy",
                        []
                    ]
                ]
            },
            {
                "name": "Padding",
                "comment": " Represents padding dimensions in pixel units. `PSize` will set the same value\non all four edges of a rectangular container while `PEdges` can be used to specify\ndifferent sizes on each edge in order _left_, _top_, _right_, _bottom_.\n",
                "args": [],
                "cases": [
                    [
                        "PSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PEdges",
                        [
                            "Float",
                            "Float",
                            "Float",
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "Position",
                "comment": " Type of position channel, `X` and `Y` represent horizontal and vertical axis\ndimensions on a plane and `X2` and `Y2` represent secondary axis dimensions where\ntwo scales are overlaid in the same space. Geographic positions represented by\nlongitude and latiutude values are identified with `Longitude`, `Latitude` and\ntheir respective secondary equivalents. Such geographic position channels are\nsubject to a map projection before being placed graphically.\n",
                "args": [],
                "cases": [
                    [
                        "X",
                        []
                    ],
                    [
                        "Y",
                        []
                    ],
                    [
                        "X2",
                        []
                    ],
                    [
                        "Y2",
                        []
                    ],
                    [
                        "Longitude",
                        []
                    ],
                    [
                        "Latitude",
                        []
                    ],
                    [
                        "Longitude2",
                        []
                    ],
                    [
                        "Latitude2",
                        []
                    ]
                ]
            },
            {
                "name": "PositionChannel",
                "comment": " Position channel properties used for creating a position channel encoding.\n",
                "args": [],
                "cases": [
                    [
                        "PName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "PRepeat",
                        [
                            "Arrangement"
                        ]
                    ],
                    [
                        "PmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "PBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "PTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "PAggregate",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "PScale",
                        [
                            "List ScaleProperty"
                        ]
                    ],
                    [
                        "PAxis",
                        [
                            "List AxisProperty"
                        ]
                    ],
                    [
                        "PSort",
                        [
                            "List SortProperty"
                        ]
                    ],
                    [
                        "PStack",
                        [
                            "StackProperty"
                        ]
                    ]
                ]
            },
            {
                "name": "Projection",
                "comment": " Types of geographic map projection. These are based on a subset of those provided\nby the [d3-geo library](https://github.com/d3/d3-geo). For details of available\nprojections see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/projection.html#projection-types).\nAdditional custom projections from d3 can be defined via the\n[Vega API](https://vega.github.io/vega/docs/projections/#register) and called from\nwithin Elm-Vega setting the projection to `Custom proj` where `proj` is the name\nof the D3 projection to use (e.g. `winkel3`).\n",
                "args": [],
                "cases": [
                    [
                        "Albers",
                        []
                    ],
                    [
                        "AlbersUsa",
                        []
                    ],
                    [
                        "AzimuthalEqualArea",
                        []
                    ],
                    [
                        "AzimuthalEquidistant",
                        []
                    ],
                    [
                        "ConicConformal",
                        []
                    ],
                    [
                        "ConicEqualArea",
                        []
                    ],
                    [
                        "ConicEquidistant",
                        []
                    ],
                    [
                        "Custom",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Equirectangular",
                        []
                    ],
                    [
                        "Gnomonic",
                        []
                    ],
                    [
                        "Mercator",
                        []
                    ],
                    [
                        "Orthographic",
                        []
                    ],
                    [
                        "Stereographic",
                        []
                    ],
                    [
                        "TransverseMercator",
                        []
                    ]
                ]
            },
            {
                "name": "ProjectionProperty",
                "comment": " Properties for customising a geospatial projection that converts longitude/latitude\npairs into planar (x,y) coordinate pairs for rendering and query. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/projection.html).\n",
                "args": [],
                "cases": [
                    [
                        "PType",
                        [
                            "Projection"
                        ]
                    ],
                    [
                        "PClipAngle",
                        [
                            "Maybe Float"
                        ]
                    ],
                    [
                        "PClipExtent",
                        [
                            "ClipRect"
                        ]
                    ],
                    [
                        "PCenter",
                        [
                            "Float",
                            "Float"
                        ]
                    ],
                    [
                        "PRotate",
                        [
                            "Float",
                            "Float",
                            "Float"
                        ]
                    ],
                    [
                        "PPrecision",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PCoefficient",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PDistance",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PFraction",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PLobes",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "PParallel",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PRadius",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PRatio",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PSpacing",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "PTilt",
                        [
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "RangeConfig",
                "comment": " Properties for customising the colors of a range. The parameter should be a\nnamed color scheme such as `accent` or `purpleorange-11`. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega/docs/schemes/#scheme-properties).\n",
                "args": [],
                "cases": [
                    [
                        "RCategory",
                        [
                            "String"
                        ]
                    ],
                    [
                        "RDiverging",
                        [
                            "String"
                        ]
                    ],
                    [
                        "RHeatmap",
                        [
                            "String"
                        ]
                    ],
                    [
                        "ROrdinal",
                        [
                            "String"
                        ]
                    ],
                    [
                        "RRamp",
                        [
                            "String"
                        ]
                    ],
                    [
                        "RSymbol",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "RepeatFields",
                "comment": " Create a list of fields to use in set of repeated small multiples. The list of\nfields named here can be referenced in an encoding with `PRepeat Column`, `PRepeat Row`\netc.\n",
                "args": [],
                "cases": [
                    [
                        "RowFields",
                        [
                            "List String"
                        ]
                    ],
                    [
                        "ColumnFields",
                        [
                            "List String"
                        ]
                    ]
                ]
            },
            {
                "name": "Resolution",
                "comment": " Indicated whether or not a scale domain should be independent of others in a\ncomposite visualization. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/resolve.html) for\ndetails.\n",
                "args": [],
                "cases": [
                    [
                        "Shared",
                        []
                    ],
                    [
                        "Independent",
                        []
                    ]
                ]
            },
            {
                "name": "Resolve",
                "comment": " Used to determine how a channel's axis, scale or legend domains should be resolved\nif defined in more than one view in a composite visualization. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/resolve.html) for\ndetails.\n",
                "args": [],
                "cases": [
                    [
                        "RAxis",
                        [
                            "List ( Channel, Resolution )"
                        ]
                    ],
                    [
                        "RLegend",
                        [
                            "List ( Channel, Resolution )"
                        ]
                    ],
                    [
                        "RScale",
                        [
                            "List ( Channel, Resolution )"
                        ]
                    ]
                ]
            },
            {
                "name": "Scale",
                "comment": " Used to indicate the type of scale transformation to apply.\n",
                "args": [],
                "cases": [
                    [
                        "ScLinear",
                        []
                    ],
                    [
                        "ScPow",
                        []
                    ],
                    [
                        "ScSqrt",
                        []
                    ],
                    [
                        "ScLog",
                        []
                    ],
                    [
                        "ScTime",
                        []
                    ],
                    [
                        "ScUtc",
                        []
                    ],
                    [
                        "ScSequential",
                        []
                    ],
                    [
                        "ScOrdinal",
                        []
                    ],
                    [
                        "ScBand",
                        []
                    ],
                    [
                        "ScPoint",
                        []
                    ],
                    [
                        "ScBinLinear",
                        []
                    ],
                    [
                        "ScBinOrdinal",
                        []
                    ]
                ]
            },
            {
                "name": "ScaleConfig",
                "comment": " Scale configuration property. These are used to configure all scales.\nFor more details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/scale.html#scale-config)\n",
                "args": [],
                "cases": [
                    [
                        "SCBandPaddingInner",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCBandPaddingOuter",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCClamp",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "SCMaxBandSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMinBandSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMaxFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMinFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMaxOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMinOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMaxSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMinSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMaxStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCMinStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCPointPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCRangeStep",
                        [
                            "Maybe Float"
                        ]
                    ],
                    [
                        "SCRound",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "SCTextXRangeStep",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SCUseUnaggregatedDomain",
                        [
                            "Bool"
                        ]
                    ]
                ]
            },
            {
                "name": "ScaleDomain",
                "comment": " Describes the scale domain (type of data in scale). For full details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/scale.html#domain).\n",
                "args": [],
                "cases": [
                    [
                        "DNumbers",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "DStrings",
                        [
                            "List String"
                        ]
                    ],
                    [
                        "DDateTimes",
                        [
                            "List (List DateTime)"
                        ]
                    ],
                    [
                        "DSelection",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Unaggregated",
                        []
                    ]
                ]
            },
            {
                "name": "ScaleNice",
                "comment": " Describes the way a scale can be rounded to 'nice' numbers. For full details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/scale.html#continuous).\n",
                "args": [],
                "cases": [
                    [
                        "NMillisecond",
                        []
                    ],
                    [
                        "NSecond",
                        []
                    ],
                    [
                        "NMinute",
                        []
                    ],
                    [
                        "NHour",
                        []
                    ],
                    [
                        "NDay",
                        []
                    ],
                    [
                        "NWeek",
                        []
                    ],
                    [
                        "NMonth",
                        []
                    ],
                    [
                        "NYear",
                        []
                    ],
                    [
                        "NInterval",
                        [
                            "TimeUnit",
                            "Int"
                        ]
                    ],
                    [
                        "IsNice",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "NTickCount",
                        [
                            "Int"
                        ]
                    ]
                ]
            },
            {
                "name": "ScaleProperty",
                "comment": " Individual scale property. These are used to customise an individual scale\ntransformation. To customise all scales use `config` and supply relevant\n`ScaleConfig` values. For more details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/scale.html)\n",
                "args": [],
                "cases": [
                    [
                        "SType",
                        [
                            "Scale"
                        ]
                    ],
                    [
                        "SDomain",
                        [
                            "ScaleDomain"
                        ]
                    ],
                    [
                        "SRange",
                        [
                            "ScaleRange"
                        ]
                    ],
                    [
                        "SScheme",
                        [
                            "String",
                            "List Float"
                        ]
                    ],
                    [
                        "SPadding",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SPaddingInner",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SPaddingOuter",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SRangeStep",
                        [
                            "Maybe Float"
                        ]
                    ],
                    [
                        "SRound",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "SClamp",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "SInterpolate",
                        [
                            "CInterpolate"
                        ]
                    ],
                    [
                        "SNice",
                        [
                            "ScaleNice"
                        ]
                    ],
                    [
                        "SZero",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "SReverse",
                        [
                            "Bool"
                        ]
                    ]
                ]
            },
            {
                "name": "ScaleRange",
                "comment": " Describes a scale range of scale output values. For full details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/scale.html#range).\n",
                "args": [],
                "cases": [
                    [
                        "RNumbers",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "RStrings",
                        [
                            "List String"
                        ]
                    ],
                    [
                        "RName",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "Selection",
                "comment": " Indicates the type of selection to be generated by the user. `Single` allows\none mark at a time to be selected. 'Multi' allows multiple items to be selected\n(e.g. with shift-click). 'Interval' allows a bounding rectangle to be dragged by\nuser to select all items intersecting with it.\n",
                "args": [],
                "cases": [
                    [
                        "Single",
                        []
                    ],
                    [
                        "Multi",
                        []
                    ],
                    [
                        "Interval",
                        []
                    ]
                ]
            },
            {
                "name": "SelectionMarkProperty",
                "comment": " Properties for customising the appearance of an interval selection mark (dragged\nrectangle). For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/selection.html#interval-mark).\n",
                "args": [],
                "cases": [
                    [
                        "SMFill",
                        [
                            "String"
                        ]
                    ],
                    [
                        "SMFillOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SMStroke",
                        [
                            "String"
                        ]
                    ],
                    [
                        "SMStrokeOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SMStrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "SMStrokeDash",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "SMStrokeDashOffset",
                        [
                            "Float"
                        ]
                    ]
                ]
            },
            {
                "name": "SelectionProperty",
                "comment": " Properties for customising the nature of the selection. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/selection.html#selection-properties)\nfor details. When linking a selection property to an event stream with `On`, `Translate`\nor `Zoom`, a String should be provided describing the event stream as detailed in the\n[Vega event stream documentation](https://vega.github.io/vega/docs/event-streams).\nIf an empty string is provided, the property is set to `false`. The `Toggle` option\nexpects a [Vega expression](https://vega.github.io/vega/docs/expressions) that evaluates\nto either true or false.\n",
                "args": [],
                "cases": [
                    [
                        "On",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Translate",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Zoom",
                        [
                            "String"
                        ]
                    ],
                    [
                        "Fields",
                        [
                            "List String"
                        ]
                    ],
                    [
                        "Encodings",
                        [
                            "List Channel"
                        ]
                    ],
                    [
                        "Empty",
                        []
                    ],
                    [
                        "ResolveSelections",
                        [
                            "SelectionResolution"
                        ]
                    ],
                    [
                        "SelectionMark",
                        [
                            "List SelectionMarkProperty"
                        ]
                    ],
                    [
                        "BindScales",
                        []
                    ],
                    [
                        "Bind",
                        [
                            "List Binding"
                        ]
                    ],
                    [
                        "Nearest",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "Toggle",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "SelectionResolution",
                "comment": " Determines how selections in faceted or repeated views are resolved. See the\n[Vege-Lite documentation](https://vega.github.io/vega-lite/docs/selection.html#resolve)\nfor details\n",
                "args": [],
                "cases": [
                    [
                        "Global",
                        []
                    ],
                    [
                        "Union",
                        []
                    ],
                    [
                        "Intersection",
                        []
                    ]
                ]
            },
            {
                "name": "Side",
                "comment": " Represents one side of a rectangular space.\n",
                "args": [],
                "cases": [
                    [
                        "STop",
                        []
                    ],
                    [
                        "SBottom",
                        []
                    ],
                    [
                        "SLeft",
                        []
                    ],
                    [
                        "SRight",
                        []
                    ]
                ]
            },
            {
                "name": "SortProperty",
                "comment": " Allow type of sorting to be customised. For details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/sort.html).\n",
                "args": [],
                "cases": [
                    [
                        "Ascending",
                        []
                    ],
                    [
                        "Descending",
                        []
                    ],
                    [
                        "Op",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "ByField",
                        [
                            "String"
                        ]
                    ],
                    [
                        "ByRepeat",
                        [
                            "Arrangement"
                        ]
                    ]
                ]
            },
            {
                "name": "StackProperty",
                "comment": " Describes the type of stacking to apply to a bar chart.\n",
                "args": [],
                "cases": [
                    [
                        "StZero",
                        []
                    ],
                    [
                        "StNormalize",
                        []
                    ],
                    [
                        "StCenter",
                        []
                    ],
                    [
                        "NoStack",
                        []
                    ]
                ]
            },
            {
                "name": "Symbol",
                "comment": " Identifies the type of symbol. The `Path` symbol is used to define custom shapes\nas an SVG path description.\n",
                "args": [],
                "cases": [
                    [
                        "SymCircle",
                        []
                    ],
                    [
                        "SymSquare",
                        []
                    ],
                    [
                        "Cross",
                        []
                    ],
                    [
                        "Diamond",
                        []
                    ],
                    [
                        "TriangleUp",
                        []
                    ],
                    [
                        "TriangleDown",
                        []
                    ],
                    [
                        "Path",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "TextChannel",
                "comment": " Types of text channel property used for displaying text as part of the visualization.\n",
                "args": [],
                "cases": [
                    [
                        "TName",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TRepeat",
                        [
                            "Arrangement"
                        ]
                    ],
                    [
                        "TmType",
                        [
                            "Measurement"
                        ]
                    ],
                    [
                        "TBin",
                        [
                            "List BinProperty"
                        ]
                    ],
                    [
                        "TAggregate",
                        [
                            "Operation"
                        ]
                    ],
                    [
                        "TTimeUnit",
                        [
                            "TimeUnit"
                        ]
                    ],
                    [
                        "TSelectionCondition",
                        [
                            "BooleanOp",
                            "List TextChannel",
                            "List TextChannel"
                        ]
                    ],
                    [
                        "TDataCondition",
                        [
                            "BooleanOp",
                            "List TextChannel",
                            "List TextChannel"
                        ]
                    ],
                    [
                        "TFormat",
                        [
                            "String"
                        ]
                    ]
                ]
            },
            {
                "name": "TimeUnit",
                "comment": " Describes a unit of time. Useful for encoding and transformations. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/timeunit.html)\nfor further details.\n\nTo encode a time as UTC (coordinated universal time, independent of local time\nzones or daylight saving), provide a time unit to the `utc` function.\nFor example,\n\n    encoding\n        << position X [ PName \"date\", PmType Temporal, PTimeUnit (utc YearMonthDateHours) ]\n\n",
                "args": [],
                "cases": [
                    [
                        "Year",
                        []
                    ],
                    [
                        "YearQuarter",
                        []
                    ],
                    [
                        "YearQuarterMonth",
                        []
                    ],
                    [
                        "YearMonth",
                        []
                    ],
                    [
                        "YearMonthDate",
                        []
                    ],
                    [
                        "YearMonthDateHours",
                        []
                    ],
                    [
                        "YearMonthDateHoursMinutes",
                        []
                    ],
                    [
                        "YearMonthDateHoursMinutesSeconds",
                        []
                    ],
                    [
                        "Quarter",
                        []
                    ],
                    [
                        "QuarterMonth",
                        []
                    ],
                    [
                        "Month",
                        []
                    ],
                    [
                        "MonthDate",
                        []
                    ],
                    [
                        "Date",
                        []
                    ],
                    [
                        "Day",
                        []
                    ],
                    [
                        "Hours",
                        []
                    ],
                    [
                        "HoursMinutes",
                        []
                    ],
                    [
                        "HoursMinutesSeconds",
                        []
                    ],
                    [
                        "Minutes",
                        []
                    ],
                    [
                        "MinutesSeconds",
                        []
                    ],
                    [
                        "Seconds",
                        []
                    ],
                    [
                        "SecondsMilliseconds",
                        []
                    ],
                    [
                        "Milliseconds",
                        []
                    ]
                ]
            },
            {
                "name": "TitleConfig",
                "comment": " Title configuration properties. These are used to configure the default style\nof all titles within a visualization.\nFor further details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/title.html#config)\n",
                "args": [],
                "cases": [
                    [
                        "TAnchor",
                        [
                            "APosition"
                        ]
                    ],
                    [
                        "TAngle",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TBaseline",
                        [
                            "VAlign"
                        ]
                    ],
                    [
                        "TColor",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TFont",
                        [
                            "String"
                        ]
                    ],
                    [
                        "TFontSize",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TFontWeight",
                        [
                            "FontWeight"
                        ]
                    ],
                    [
                        "TLimit",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TOffset",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "TOrient",
                        [
                            "Side"
                        ]
                    ]
                ]
            },
            {
                "name": "VAlign",
                "comment": " Indicates the vertical alignment of some text that may be attached to a mark.\n",
                "args": [],
                "cases": [
                    [
                        "AlignTop",
                        []
                    ],
                    [
                        "AlignMiddle",
                        []
                    ],
                    [
                        "AlignBottom",
                        []
                    ]
                ]
            },
            {
                "name": "VLProperty",
                "comment": " Top-level Vega-Lite properties. These are the ones that define the core of the\nvisualization grammar. All `VLProperties` are created by functions which can be\narranged into seven broad groups.\n\n**Data Properties** relate to the input data to be visualized. Generated by\n[`dataFromColumns`](#dataFromColumns), [`dataFromRows`](#dataFromRows),\n[`dataFromUrl`](#dataFromUrl), [`dataFromSource`](#dataFromSource) and\n[`dataFromJson`](#dataFromJson).\n\n**Transform Properties** indicate that some transformation of input data should\nbe applied before encoding them visually. Generated by [`transform`](#transform)\nand [`projection`](#projection) they can include data transformations such as `filter`,\n`binAs` and `calculateAs` and geo transformations of longitude, latitude coordinates\nused by marks such as `Geoshape`, `Point` and `Line`.\n\n**Mark Properties** relate to the symbols used to visualize data items. Generated by [`mark`](#mark)\nthey include types such as `Circle`, `Bar` and `Line`.\n\n**Encoding Properties** specify which data elements are mapped to which mark characteristics\n(known as _channels_). Generated by [`encoding`](#encoding) they include encodings\nsuch as `position`, `color`, `size`, `shape` `text` and `hyperlink`.\n\n**Composition Properties** allow visualization views to be combined to form more\ncomplex visualizations. Generated by [`layer`](#layer), [`repeat`](#repeat),\n[`facet`](#facet), [`hConcat`](#hConcat), [`vConcat`](#vConcat), [`spec`](#spec)\nand [`resolve`](#resolve).\n\n**Interaction Properties** allow interactions such as clicking, dragging and others\ngenerated via a GUI or data stream to influence the visualization. Generated by\n[`selection`](#selection).\n\n**Supplementary and Configuration Properties** provide a means to add metadata and\nstyling to one or more visualizations. Generated by [`name`](#name), [`title`](#title),\n[`description`](#description), [`background`](#background), [`width`](#width),\n[`height`](#height), [`padding`](#padding), [`autosize`](#autosize) and\n[`configure`](#configure).\n\n",
                "args": [],
                "cases": []
            },
            {
                "name": "ViewConfig",
                "comment": " View configuration property. These are used to configure the style of a single\nview within a visualization such as its size and default fill and stroke colors.\nFor further details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/spec.html#config)\n",
                "args": [],
                "cases": [
                    [
                        "ViewWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "ViewHeight",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Clip",
                        [
                            "Bool"
                        ]
                    ],
                    [
                        "Fill",
                        [
                            "Maybe String"
                        ]
                    ],
                    [
                        "FillOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "Stroke",
                        [
                            "Maybe String"
                        ]
                    ],
                    [
                        "StrokeOpacity",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "StrokeWidth",
                        [
                            "Float"
                        ]
                    ],
                    [
                        "StrokeDash",
                        [
                            "List Float"
                        ]
                    ],
                    [
                        "StrokeDashOffset",
                        [
                            "Float"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [
            {
                "name": "Data",
                "comment": " Convenience type annotation label for use with data generation functions.\n\n    myRegion : List DataColumn -> Data\n    myRegion =\n        dataFromColumns []\n            << dataColumn \"easting\" (Numbers [ -3, 4, 4, -3, -3 ])\n            << dataColumn \"northing\" (Numbers [ 52, 52, 45, 45, 52 ])\n\n",
                "args": [],
                "type": "( VLProperty, Spec )"
            },
            {
                "name": "DataColumn",
                "comment": " Represents a single column of data. Used when generating inline data with\n`dataColumn`.\n",
                "args": [],
                "type": "List LabelledSpec"
            },
            {
                "name": "DataRow",
                "comment": " Represents a single row of data. Used when generating inline data with\n`dataRow`.\n",
                "args": [],
                "type": "Spec"
            },
            {
                "name": "LabelledSpec",
                "comment": " Represents a named Vega-Lite specification, usually generated by an elm-vega\nfunction. You shouldn't need to create `LabelledSpec` tuples directly, but they\ncan be useful for type annotations.\n",
                "args": [],
                "type": "( String, Spec )"
            },
            {
                "name": "Spec",
                "comment": " Represents part or all of Vega-Lite specification. Specs can be (and usually\nare) nested. They can range from a single Boolean value up to the entire Vega-Lite\nspecification.\n",
                "args": [],
                "type": "Value"
            }
        ],
        "values": [
            {
                "name": "aggregate",
                "comment": " Defines a set of named aggregation transformations to be used when encoding\nchannels. This is useful when, for example, you wish to apply the same transformation\nto a number of channels but do not want to define it each time. The first parameter is\na list of the named aggregation operations to apply. The second parameter is a list\nof 'group by' fields. The third parameter is the list of transformations to which\nthis is to be added. For further details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/aggregate.html#aggregate-op-def).\n\n    trans =\n        transform\n            << aggregate\n                [ opAs Min \"people\" \"lowerBound\", opAs Max \"people\" \"upperBound\" ]\n                [ \"age\" ]\n\n",
                "type": "List Spec -> List String -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "asSpec",
                "comment": " Create a specification sufficient to define an element in a composed visualization\nsuch as a superposed layer or juxtaposed facet. Typically a layer will contain a\nfull set of specifications that define a visualization with\nthe exception of the data specification which is usually defined outside of any one\nlayer. Whereas for repeated and faceted specs, the entire specification is provided.\n\n    enc1 = ...\n    spec1 =\n        asSpec [ enc1, mark Line [] ]\n\n",
                "type": "List ( VLProperty, Spec ) -> Spec"
            },
            {
                "name": "autosize",
                "comment": " Declare the way the view is sized. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/size.html#autosize)\nfor details.\n\n    enc = ...\n    toVegaLite\n        [ width 250\n        , height 300\n        , autosize [ AFit, APadding, AResize ]\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "List Autosize -> ( VLProperty, Spec )"
            },
            {
                "name": "background",
                "comment": " Set the background color of the visualization. Should be specified with a CSS\nstring such as `#ffe` or `rgb(200,20,150)`. If not specified the background will\nbe transparent.\n\n    enc = ...\n    toVegaLite\n        [ background \"rgb(251,247,238)\"\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "String -> ( VLProperty, Spec )"
            },
            {
                "name": "bin",
                "comment": " Create a binning transformation to be applied directly to a channel. The type\nof binning can be customised with a list of `BinProperty` or an empty list to use\nthe default binning. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/bin.html) for\nmore details.\n\n    position X [ PName \"IMDB_Rating\", PmType Quantitative , PBin [] ]\n\n",
                "type": "List BinProperty -> LabelledSpec"
            },
            {
                "name": "binAs",
                "comment": " Create a named binning transformation that may be referenced in other Transformations\nor encodings. This works in a similar way to `bin` but requires the name of the field\nto bin and an additional label so it may be referenced in other expressions. The\ntype of binning can be customised with a list of `BinProperty` or an empty list\nto use the default binning. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/bin.html) for\nmore details. Note that usually, direct binning within an encoding is preferred\nover this form of bin transformation.\n\n    trans =\n        transform\n            << binAs [ MaxBins 3 ] \"IMDB_Rating\" \"ratingGroup\"\n\n",
                "type": "List BinProperty -> String -> String -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "calculateAs",
                "comment": " Creates a new data field based on calculations from existing fields.\nThe first parameter is an expression representing the calculation and the second\nis the name to give the newly calculated field. This third parameter is a list of\nany previous calculations to which this is to be added. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/calculate.html)\nfor further details.\n\n    trans =\n        transform << calculateAs \"datum.sex == 2 ? 'F' : 'M'\" \"gender\"\n\n",
                "type": "String -> String -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "categoricalDomainMap",
                "comment": " Create a set of discrete domain to color mappings suitable for customising categorical\nscales. The first item in each tuple should be a domain value and the second the\ncolor value with which it should be associated. It is a convenience function equivalent\nto specifying separate `SDomain` and `SRange` lists and is safer as it guarantees\na one-to-one correspondence between domain and range values.\n\n    color\n        [ MName \"weather\"\n        , MmType Nominal\n        , MScale <|\n            categoricalDomainMap\n                [ ( \"sun\", \"yellow\" )\n                , ( \"rain\", \"blue\" )\n                , ( \"fog\", \"grey\" )\n                ]\n        ]\n\n",
                "type": "List ( String, String ) -> List ScaleProperty"
            },
            {
                "name": "color",
                "comment": " Encode a color channel. The first parameter is a list of mark channel properties\nthat characterise the way a data field is encoded by color. The second parameter\nis a list of any previous channels to which this color channel should be added.\n\n    color [ MName \"Species\", MmType Nominal ] []\n\nEncoding a color channel will generate a legend by default. To stop the legend\nappearing, just supply an empty list of legend properties to `MLegend` :\n\n    color [ MName \"Species\", MmType Nominal, MLegend [] ] []\n\n",
                "type": "List MarkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "column",
                "comment": " Encodes a new facet to be arranged in columns. The first parameter is a list\nof properties that define the faceting channel. This should include at least the\nname of the data field and its measurement type. The final parameter is a list of\nany previous channels to which this is to be added. This is usually implicit when\nchaining encodings using functional composition\n\n    enc =\n        encoding\n            << position X [ PName \"people\", PmType Quantitative ]\n            << position Y [ PName \"gender\", PmType Nominal ]\n            << column [ FName \"age\", FmType Ordinal ]\n\n",
                "type": "List FacetChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "combineSpecs",
                "comment": " Combines a list of labelled specifications into a single specification that\nmay be passed to JavaScript for rendering. This is useful when you wish to create\na single page with multiple visulizualizations.\n\n    combineSpecs\n        [ ( \"vis1\", myFirstVis )\n        , ( \"vis2\", mySecondVis )\n        , ( \"vis3\", myOtherVis )\n        ]\n\n",
                "type": "List LabelledSpec -> Spec"
            },
            {
                "name": "configuration",
                "comment": " Defines a single configuration option to be applied globally across the visualization.\nThe first parameter identifies the type of configuration, the second a list of previous\nconfigurations to which this one may be added.\n\n    configuration (Axis [ DomainWidth 4 ]) []\n\n",
                "type": "ConfigurationProperty -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "configure",
                "comment": " Create a single global configuration from a list of configuration specifications.\nConfigurations are applied to all relevant items in the specification. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/config.html) for\nmore details.\n\n    config =\n        configure\n            << configuration (Axis [ DomainWidth 1 ])\n            << configuration (View [ Stroke (Just \"transparent\") ])\n            << configuration (SelectionStyle [ ( Single, [ On \"dblclick\" ] ) ])\n\n",
                "type": "List LabelledSpec -> ( VLProperty, Spec )"
            },
            {
                "name": "dataColumn",
                "comment": " Create a column of data. A column has a name and a list of values. The final\nparameter is the list of any other columns to which this is added.\n\n    dataColumn \"Animal\" (Strings [ \"Cat\", \"Dog\", \"Mouse\"]) []\n\n",
                "type": "String -> DataValues -> List DataColumn -> List DataColumn"
            },
            {
                "name": "dataFromColumns",
                "comment": " Declare a data source from a provided list of column values. Each column contains\nvalues of the same type, but columns each with a different type are permitted.\nColumns should all contain the same number of items; if not the dataset will be\ntruncated to the length of the shortest column. An optional list of field formatting\ninstructions can be provided as the first parameter or an empty list to use the\ndefault formatting. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/data.html#format)\nfor details.\nThe columns themselves are most easily generated with `dataColumn`\n\n    data =\n        dataFromColumns [ Parse [ ( \"Year\", FoDate \"%Y\" ) ] ]\n            << dataColumn \"Animal\" (Strings [ \"Fish\", \"Dog\", \"Cat\" ])\n            << dataColumn \"Age\" (Numbers [ 28, 12, 6 ])\n            << dataColumn \"Year\" (Strings [ \"2010\", \"2014\", \"2015\" ])\n\n",
                "type": "List Format -> List DataColumn -> Data"
            },
            {
                "name": "dataFromJson",
                "comment": " Declare a data source from a provided json specification. The most likely use-case\nfor specifying json inline is when creating [geojson](http://geojson.org) objects,\nwhen [`geometry`](#geometry), [`geometryCollection`](#geometryCollection) and\n[`geoFeatureCollection`](#geoFeatureCollection) functions may be used. For more\ngeneral cases of json creation, consider\n[`Json.Encode`](http://package.elm-lang.org/packages/elm-lang/core/5.1.1/Json-Encode).\n\n    let\n        geojson =\n            geometry (GeoPolygon [ [ ( -3, 59 ), ( 4, 59 ), ( 4, 52 ), ( -3, 59 ) ] ]) []\n    in\n    toVegaLite\n        [ width 200\n        , height 200\n        , dataFromJson geojson []\n        , projection [ PType Orthographic ]\n        , mark Geoshape []\n        ]\n\n",
                "type": "Spec -> List Format -> Data"
            },
            {
                "name": "dataFromRows",
                "comment": " Declare a data source from a provided list of row values. Each row contains\na list of tuples where the first value is a string representing the column name, and the\nsecond the column value for that row. Each column can have a value of a different type\nbut you must ensure that when subsequent rows are added, they match the types of previous\nvalues with shared column names. An optional list of field formatting instructions can\nbe provided as the first parameter or an empty list to use the default formatting. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/data.html#format)\nfor details.\nThe rows themselves are most easily generated with `dataRow`. Note though that generally\nif you are creating data inline (as opposed to reading from a file), adding data by column\nis more efficient and less error-prone.\n\n    data =\n        dataFromRows [ Parse [ ( \"Year\", FoDate \"%Y\" ) ] ]\n            << dataRow [ ( \"Animal\", Str \"Fish\" ), ( \"Age\", Number 28 ), ( \"Year\", Str \"2010\" ) ]\n            << dataRow [ ( \"Animal\", Str \"Dog\" ), ( \"Age\", Number 12 ), ( \"Year\", Str \"2014\" ) ]\n            << dataRow [ ( \"Animal\", Str \"Cat\" ), ( \"Age\", Number 6 ), ( \"Year\", Str \"2015\" ) ]\n\n",
                "type": "List Format -> List DataRow -> Data"
            },
            {
                "name": "dataFromSource",
                "comment": " Declare data from a named source. The source may be from named `datasets` within\na specification or a named data source created via the\n[Vega View API](https://vega.github.io/vega/docs/api/view/#data).\nAn optional list of field formatting instructions can be provided as the second\nparameter or an empty list to use the default formatting. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/data.html#named)\nfor details.\n\n    data = ...\n    json = ...\n    enc = ...\n    toVegaLite\n        [ datasets [ ( \"myData\", data [] ),  ( \"myJson\", dataFromJson json [] ) ]\n        , dataFromSource \"myData\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "String -> List Format -> Data"
            },
            {
                "name": "dataFromUrl",
                "comment": " Declare data source from a url. The url can be a local path on a web server\nor an external http(s) url. Used to create a data ( property, specification ) pair.\nAn optional list of field formatting instructions can be provided as the second\nparameter or an empty list to use the default formatting. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/data.html#format)\nfor details.\n\n    enc = ...\n    toVegaLite\n        [ dataFromUrl \"data/weather.csv\" [ Parse [ ( \"date\", FoDate \"%Y-%m-%d %H:%M\" ) ] ]\n        , mark Line []\n        , enc []\n        ]\n\n",
                "type": "String -> List Format -> Data"
            },
            {
                "name": "dataRow",
                "comment": " Create a row of data. A row comprises a list of (columnName,value) pairs.\nThe final parameter is the list of any other rows to which this is added.\n\n    dataRow [(\"Animal\", Str \"Fish\"),(\"Age\",Number 28),(\"Year\", Str \"2010\")] []\n\n",
                "type": "List ( String, DataValue ) -> List DataRow -> List DataRow"
            },
            {
                "name": "datasets",
                "comment": " Create a dataset comprising a collection of named `Data` items. Each data item\ncan be created with normal data generating functions such as `dataFromRows` or\n`dataFromJson`. These can be later referred to using `dataFromSource`.\n\n    let\n        data =\n            dataFromRows []\n                << dataRow [ ( \"cat\", Str \"a\" ), ( \"val\", Number 10 ) ]\n                << dataRow [ ( \"cat\", Str \"b\" ), ( \"val\", Number 18 ) ]\n        json =\n            JE.list\n                [ JE.object [ ( \"cat\", JE.string \"a\" ), ( \"val\", JE.float 120 ) ]\n                , JE.object [ ( \"cat\", JE.string \"b\" ), ( \"val\", JE.float 180 ) ]\n                ]\n\n        enc = ...\n\n    in\n    toVegaLite\n        [ datasets [ ( \"myData\", data [] ),  ( \"myJson\", dataFromJson json [] ) ]\n        , dataFromSource \"myData\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "List ( String, Data ) -> Data"
            },
            {
                "name": "description",
                "comment": " Provides an optional description to be associated with the visualization.\n\n    enc = ...\n    toVegaLite\n        [ description \"Population change of key regions since 1900\"\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "String -> ( VLProperty, Spec )"
            },
            {
                "name": "detail",
                "comment": " Encode a 'level of detail' channel. This provides a way of grouping by a field\nbut unlike, say `color`, all groups have the same visual properties. The first\nparameter is a list of the field characteristics to be grouped. The second parameter\nis a list of any previous channels to which this detail channel should be added. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#detail)\nfor details.\n\n    detail [ DName \"Species\", DmType Nominal ] []\n\n",
                "type": "List DetailChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "domainRangeMap",
                "comment": " Create a pair of continuous domain to color mappings suitable for customising\nordered scales. The first parameter is a tuple representing the mapping of the lowest\nnumeric value in the domain to its equivalent color; the second tuple the mapping\nof the highest numeric value to color. If the domain contains any values between\nthese lower and upper bounds they are interpolated according to the scale's interpolation\nfunction. This is a convenience function equivalent to specifying separate `SDomain`\nand `SRange` lists and is safer as it guarantees a one-to-one correspondence between\ndomain and range values.\n\n    color\n        [ MName \"year\"\n        , MmType Ordinal\n        , MScale (domainRangeMap ( 1955, \"#e6959c\" ) ( 2000, \"#911a24\" ))\n        ]\n\n",
                "type": "( Float, String ) -> ( Float, String ) -> List ScaleProperty"
            },
            {
                "name": "encoding",
                "comment": " Create an encoding specification from a list of channel encodings.\n\n    enc =\n        encoding\n            << position X [ PName \"Animal\", PmType Ordinal ]\n            << position Y [ PName \"Age\", PmType Quantitative ]\n            << shape [ MName \"Species\", MmType Nominal ]\n            << size [ MName \"Population\", MmType Quantitative ]\n\n",
                "type": "List LabelledSpec -> ( VLProperty, Spec )"
            },
            {
                "name": "facet",
                "comment": " Defines the fields that will be used to facet a view in rows or columns to create\na set of small multiples. This is used where the encoding of the visualization in small\nmultiples is identical, but data for each is grouped by the given fields. When\ncreating a faceted view in this way you also need to define a full specification\nto apply to each of those facets using `asSpec`.\n\n    spec = ...\n    toVegaLite\n        [ facet [ RowBy [ FName \"Origin\", FmType Nominal ] ]\n        , specifcation spec\n        ]\n\nSee the [Vega-Lite documentation](https://vega.github.io/vega-lite/docs/facet.html)\nfor further details.\n\n",
                "type": "List FacetMapping -> ( VLProperty, Spec )"
            },
            {
                "name": "fill",
                "comment": " Encode a fill channel. This acts in a similar way to encoding by `color` but\nonly affects the interior of closed shapes. The first parameter is a list of mark\nchannel properties that characterise the way a data field is encoded by fill.\nThe second parameter is a list of any previous channels to which this fill channel\nshould be added.\n\n    fill [ MName \"Species\", MmType Nominal ] []\n\nNote that if both `fill` and `color` encodings are specified, `fill` takes precedence.\n\n",
                "type": "List MarkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "filter",
                "comment": " Adds the given filter operation a list of transformations that may be applied\nto a channel or field. The first parameter is the filter operation and the second,\noften implicit, parameter is the list of other filter operations to which this\nshould be added in sequence.\n\n    trans =\n        transform\n            << filter (FEqual \"Animal\" (Str \"Cat\"))\n\nFilter operations can combine selections and data predicates with `BooleanOp` expressions:\n\n    trans =\n        transform\n            << filter (FCompose (And (Expr \"datum.Weight_in_lbs > 3000\") (Selection \"brush\")))\n\n",
                "type": "Filter -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "geoFeatureCollection",
                "comment": " Specifies a list of geo features to be used in a geoShape specification.\nEach feature object in this collection can be created with the `geometry` function.\n\n    geojson =\n        geoFeatureCollection\n            [ geometry (GeoPolygon [ [ ( -3, 59 ), ( -3, 52 ), ( 4, 52 ), ( -3, 59 ) ] ])\n                [ ( \"myRegionName\", Str \"Northern region\" ) ]\n            , geometry (GeoPolygon [ [ ( -3, 52 ), ( 4, 52 ), ( 4, 45 ), ( -3, 52 ) ] ])\n                [ ( \"myRegionName\", Str \"Southern region\" ) ]\n            ]\n\n",
                "type": "List Spec -> Spec"
            },
            {
                "name": "geometry",
                "comment": " Specifies a geometric object to be used in a geoShape specification. The first\nparameter is the geometric type, the second an optional list of properties to be\nassociated with the object.\n\n      geojson =\n          geometry (GeoPolygon [ [ ( -3, 59 ), ( 4, 59 ), ( 4, 52 ), ( -3, 59 ) ] ]) []\n\n",
                "type": "Geometry -> List ( String, DataValue ) -> Spec"
            },
            {
                "name": "geometryCollection",
                "comment": " Specifies a list of geometry objects to be used in a geoShape specification.\nEach geometry object in this collection can be created with the `geometry` function.\n\n    geojson =\n        geometryCollection\n            [ geometry (GeoPolygon [ [ ( -3, 59 ), ( 4, 59 ), ( 4, 52 ), ( -3, 59 ) ] ]) []\n            , geometry (GeoPoint -3.5 55.5) []\n            ]\n\n",
                "type": "List Spec -> Spec"
            },
            {
                "name": "hConcat",
                "comment": " Assigns a list of specifications to be juxtaposed horizontally in a visualization.\n\n    let\n        spec1 = ...\n        spec2 = ...\n    in\n    toVegaLite\n        [ dataFromUrl \"data/driving.json\" []\n        , hConcat [ spec1, spec2 ]\n        ]\n\n",
                "type": "List Spec -> ( VLProperty, Spec )"
            },
            {
                "name": "height",
                "comment": " Overrides the default height of the visualization. If not specified the height\nwill be calculated based on the content of the visualization.\n\n    enc = ...\n    toVegaLite\n        [ height 300\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "Float -> ( VLProperty, Spec )"
            },
            {
                "name": "hyperlink",
                "comment": " Encode a hyperlink channel. The first parameter is a list of hyperlink channel\nproperties that characterise the hyperlinking such as the destination url and cursor\ntype. The second parameter is a list of any previous encoding channels to which\nthis hyperlink channel should be added.\n\n    hyperlink [ HName \"Species\", HmType Nominal ] []\n\nFor further details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#href)\n\n",
                "type": "List HyperlinkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "layer",
                "comment": " Assigns a list of specifications to superposed layers in a visualization.\n\n    let\n        spec1 = ...\n        spec2 = ...\n    in\n    toVegaLite\n        [ dataFromUrl \"data/driving.json\" []\n        , layer [ spec1, spec2 ]\n        ]\n\n",
                "type": "List Spec -> ( VLProperty, Spec )"
            },
            {
                "name": "lookup",
                "comment": " Perform a lookup of named fields between two data sources. This allows you to\nfind values in one data source based on the values in another (like a relational\njoin). The first parameter is the field in the primary data source to act as key,\nthe second is the secondary data source which can be specified with a call to `dataFromUrl`\nor other data generating function. The third is the name of the field in the secondary\ndata source to match values with the primary key. The fourth parameter is the list\nof fields to be stored when the keys match. As with other transformation functions,\nthe final implicit parameter is a list of any other transformations to which this\nis to be added.\n\nUnlike `lookupAs`, this function will only return the specific fields named in the\nfourth parameter. If you wish to return the entire set of fields in the secondary\ndata source as a single object, use `lookupAs`.\n\nSee the [Vega-Lite documentation](https://vega.github.io/vega-lite/docs/lookup.html)\nfor further details.\n\nThe following would return the values in the `age` and `height` fields from\n`lookup_people.csv` for all rows where the value in the `name` column in that\nfile matches the value of `person` in the primary data source.\n\n    data =\n        dataFromUrl \"data/lookup_groups.csv\" []\n\n    trans =\n        transform\n            << lookup \"person\" (dataFromUrl \"data/lookup_people.csv\" []) \"name\" [ \"age\", \"height\" ]\n\n",
                "type": "String -> ( VLProperty, Spec ) -> String -> List String -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "lookupAs",
                "comment": " Perform an object lookup between two data sources. This allows you to find\nvalues in one data source based on the values in another (like a relational\njoin). The first parameter is the field in the primary data source to act as key,\nthe second is the secondary data source which can be specified with a call to\n`dataFromUrl` or other data generating function. The third is the name of the field\nin the secondary data source to match values with the primary key. The fourth\nparameter is the name to be given to the object storing matched values. As with\nother transformation functions, the final implicit parameter is a list of any other\ntransformations to which this is to be added.\n\nUnlike `lookup`, this function returns the entire set of field values from the\nsecondary data source when keys match. Those fields are stored as an object with\nthe name provided in the fourth parameter.\n\nSee the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/lookup.html)\nfor further details.\n\nIn the following example, `personDetails` would reference all the field values in\n`lookup_people.csv` for each row where the value in the `name` column in that\nfile matches the value of `person` in the primary data source.\n\n    data =\n        dataFromUrl \"data/lookup_groups.csv\" []\n\n    trans =\n        transform\n            << lookupAs \"person\" (dataFromUrl \"data/lookup_people.csv\" []) \"name\" \"personDetails\"\n\n",
                "type": "String -> ( VLProperty, Spec ) -> String -> String -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "mark",
                "comment": " Create a mark specification. All marks must have a type (first parameter) and\ncan optionally be customised with a list of mark properties such as interpolation\nstyle for lines. To keep the default style for the mark, just provide an empty list\nfor the second parameter.\n\n    mark Circle []\n    mark Line [ MInterpolate StepAfter ]\n\n",
                "type": "Mark -> List MarkProperty -> ( VLProperty, Spec )"
            },
            {
                "name": "name",
                "comment": " Provides an optional name to be associated with the visualization.\n\n    enc = ...\n    toVegaLite\n        [ name \"PopGrowth\"\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "String -> ( VLProperty, Spec )"
            },
            {
                "name": "opAs",
                "comment": " Create a named aggregation operation on a field that can be added to a transformation.\nThe first parameter is the aggregation operation to use; the second the name of\nthe field in which to apply it and the third the name to be given to this transformation.\nFor further details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/aggregate.html#aggregate-op-def).\n\n    trans =\n        transform\n            << aggregate\n                [ opAs Min \"people\" \"lowerBound\"\n                , opAs Max \"people\" \"upperBound\"\n                ]\n                [ \"age\" ]\n\n",
                "type": "Operation -> String -> String -> Spec"
            },
            {
                "name": "opacity",
                "comment": " Encode an opacity channel. The first parameter is a list of mark channel properties\nthat characterise the way a data field is encoded by opacity. The second parameter\nis a list of any previous channels to which this opacity channel should be added.\n\n    opacity [ MName \"Age\", MmType Quantitative ] []\n\n",
                "type": "List MarkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "order",
                "comment": " Encode an order channel. The first parameter is a list of order field definitions\nto define the channel. The second parameter is a list of any previous channels to\nwhich this order channel is to be added.\n\n    enc =\n        encoding\n            << position X [ PName \"miles\", PmType Quantitative ]\n            << position Y [ PName \"gas\", PmType Quantitative ]\n            << order [ OName \"year\", OmType Temporal ]\n\n",
                "type": "List OrderChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "padding",
                "comment": " Set the padding around the visualization in pixel units. The way padding is\ninterpreted will depend on the `autosize` properties. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/spec.html#top-level-specifications)\nfor details.\n\n    enc = ...\n    toVegaLite\n        [ width 500\n        , padding (PEdges 20 10 5 15)\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "Padding -> ( VLProperty, Spec )"
            },
            {
                "name": "position",
                "comment": " Encode a position channel. The first parameter identifies the channel,\nthe second a list of qualifying options. Usually these will include at least the\nname of the data field associated with it and its measurement type (either the field\nname directly, or a reference to a row / column repeat field). The final parameter\nis a list of any previous channels to which this position channel should be added.\nThis is often implicit when chaining a series of encodings using functional composition.\n\n      enc =\n          encoding\n            << position X [ PName \"Animal\", PmType Ordinal ]\n\nEncoding by position will generate an axis by default. To prevent the axis from\nappearing, simply provide an empty list of axis properties to `PAxis` :\n\n     enc =\n         encoding\n           << position X [ PName \"Animal\", PmType Ordinal, PAxis [] ]\n\n",
                "type": "Position -> List PositionChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "projection",
                "comment": " Sets the cartographic projection used for geospatial coordinates. A projection\ndefines the mapping from _(longitude,latitude)_ to an _(x,y)_ plane used for rendering.\nThis is useful when using the `Geoshape` mark. For further details see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/projection.html).\n\n    proj =\n        projection [ PType Orthographic, PRotate -40 0 0 ]\n\n",
                "type": "List ProjectionProperty -> ( VLProperty, Spec )"
            },
            {
                "name": "repeat",
                "comment": " Define the fields that will be used to compose rows and columns of a set of\nsmall multiples. This is used where the encoding of the visualization in small\nmultiples is largely identical, but the data field used in each might vary. When\na list of fields is identified with `repeat` you also need to define a full specification\nto apply to each of those fields using `asSpec`.\n\n    spec = ...\n    toVegaLite\n        [ repeat [ ColumnFields [ \"Cat\", \"Dog\", \"Fish\" ] ]\n        , ( Spec, asSpec spec )\n        ]\n\nSee the [Vega-Lite documentation](https://vega.github.io/vega-lite/docs/repeat.html)\nfor further details.\n\n",
                "type": "List RepeatFields -> ( VLProperty, Spec )"
            },
            {
                "name": "resolution",
                "comment": " Define a single resolution option to be applied when scales, axes or legends\nin composite views share channel encodings. This allows, for example, two different\ncolor encodings to be created in a layered view, which otherwise by default would\nshare color channels between layers. Each resolution rule should be in a tuple\npairing the channel to which it applies and the rule type.\nThe first parameter identifies the type of resolution, the second a list of previous\nresolutions to which this one may be added.\n\n    resolve\n        << resolution (RScale [ ( ChY, Independent ) ])\n\n",
                "type": "Resolve -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "resolve",
                "comment": " Determine whether scales, axes or legends in composite views should share channel\nencodings. This allows, for example, two different color encodings to be created\nin a layered view, which otherwise by default would share color channels between\nlayers. Each resolution rule should be in a tuple pairing the channel to which it\napplies and the rule type.\n\n    let\n        res =\n            resolve\n                << resolution (RLegend [ ( ChColor, Independent ) ])\n    in\n    toVegaLite\n        [ dataFromUrl \"data/movies.json\" []\n        , vConcat [ heatSpec, barSpec ]\n        , res []\n        ]\n\nFor more information see the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/resolve.html).\n\n",
                "type": "List LabelledSpec -> ( VLProperty, Spec )"
            },
            {
                "name": "row",
                "comment": " Encode a new facet to be arranged in rows. The first parameter is a list of\nfacet properties that define the faceting channel. This should include at least\nthe name of data the field and its measurement type. The final parameter is a list\nof any previous channels to which this is to be added. This is usually implicit\nwhen chaining encodings using functional composition\n\n    enc =\n        encoding\n            << position X [ PName \"people\", PmType Quantitative ]\n            << position Y [ PName \"gender\", PmType Nominal ]\n            << row [ FName \"age\", FmType Ordinal ]\n\n",
                "type": "List FacetChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "select",
                "comment": " Create a single named selection that may be applied to a data query or transformation.\nThe first two parameters specify the name to be given to the selection for later reference\nand the type of selection made. The third allows additional selection options to\nbe specified. The fourth is a list of selections to which this is added, which is\ncommonly implicit when chaining a series of selections together with functional\ncomposition.\n\n    sel =\n        selection\n            << select \"view\" Interval [ BindScales ] []\n            << select \"myBrush\" Interval []\n            << select \"myPaintbrush\" Multi [ On \"mouseover\", Nearest True ]\n\n",
                "type": "String -> Selection -> List SelectionProperty -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "selection",
                "comment": " Create a full selection specification from a list of selections. For details\nsee the [Vega-Lite documentation](https://vega.github.io/vega-lite/docs/selection.html).\n\n    selection =\n        selection << select \"view\" Interval [ BindScales ]\n\n",
                "type": "List LabelledSpec -> ( VLProperty, Spec )"
            },
            {
                "name": "shape",
                "comment": " Encode a shape channel. The first parameter is a list of mark channel properties\nthat characterise the way a data field is encoded by shape. The second parameter\nis a list of any previous channels to which this shape channel should be added.\n\n    shape [ MName \"Species\", MmType Nominal ] []\n\n",
                "type": "List MarkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "size",
                "comment": " Encode a size channel. The first parameter is a list of mark channel properties\nthat characterise the way a data field is encoded by size. The second parameter\nis a list of any previous channels to which this size channel should be added.\n\n    size [ MName \"Age\", MmType Quantitative ] []\n\n",
                "type": "List MarkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "specification",
                "comment": " Defines a specification object for use with faceted and repeated small multiples.\n\n    spec = ...\n    toVegaLite\n        [ facet [ RowBy [ FName \"Origin\", FmType Nominal ] ]\n        , specifcation spec\n        ]\n\n",
                "type": "Spec -> ( VLProperty, Spec )"
            },
            {
                "name": "stroke",
                "comment": " Encode a stroke channel. This acts in a similar way to encoding by `color` but\nonly affects the exterior boundary of marks. The first parameter is a list of mark\nchannel properties that characterise the way a data field is encoded by stroke.\nThe second parameter is a list of any previous channels to which this stroke channel\nshould be added.\n\n    stroke [ MName \"Species\", MmType Nominal ] []\n\nNote that if both `stroke` and `color` encodings are specified, `stroke` takes\nprecedence.\n\n",
                "type": "List MarkChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "text",
                "comment": " Encode a text channel. The first parameter is a list of text channel properties\nthat define the channel. The second parameter is a list of any previous channels to\nwhich this channel is to be added. This is usually implicit when chaining a set\nof encodings together with functional composition. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#text)\nfor further details on the text and tooltip channels and\n[Vega-Lite formatting documentation](https://vega.github.io/vega-lite/docs/format.html)\nfor formatting the appearance of the text.\n\n    enc =\n        encoding\n            << position X [ PName \"miles\", PmType Quantitative ]\n            << position Y [ PName \"gas\", PmType Quantitative ]\n            << text [ TName \"miles\", TmType Quantitative ]\n\n",
                "type": "List TextChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "timeUnitAs",
                "comment": " Creates a new data field based on the given temporal binning. Unlike the\ndirect encoding binning, this transformation is named and so can be referred\nto in multiple encodings. The first parameter is the 'width' of each temporal bin,\nthe second is the field to bin and the third is name to give the newly binned\nfield. The final often implicit parameter is a list of previous transformations\nto which this is added. Note though that usually it is easer to apply the temporal\nbinning directly as part of the encoding as this will automatically format the\ntemporal axis. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/timeunit.html#transform)\nfor further details.\n\nThe following example takes a temporal dataset and encodes daily totals from it\ngrouping by month.\n\n    trans =\n        transform << timeUnitAs Month \"date\" \"monthly\"\n\n    enc =\n        encoding\n            << position X [ PName \"date\", PmType Temporal, PTimeUnit Day ]\n            << position Y [ PAggregate Sum, PmType Quantitative ]\n            << detail [ DName \"monthly\", DmType Temporal ]\n\n",
                "type": "TimeUnit -> String -> String -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "title",
                "comment": " Provide an optional title to be displayed in the visualization.\n\n    enc = ...\n    toVegaLite\n        [ title \"Population Growth\"\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "String -> ( VLProperty, Spec )"
            },
            {
                "name": "toVegaLite",
                "comment": " Convert a list of Vega-Lite specifications into a single JSON object that may be\npassed to Vega-Lite for graphics generation. Commonly these will include at least\na data, mark and encoding specification.\n\nWhile simple properties like `mark` may be provided directly, it is usually clearer\nto label more complex ones such as encodings as separate expressions. This becomes\nincreasingly helpful for visualizations that involve composition of layers, repeats\nand facets.\n\nSpecifications can be built up by chaining a series of functions (such as `dataColumn`\nor `position` in the example below). Functional composition using the `<<` operator\nallows this to be done compactly.\n\n    let\n        data =\n            dataFromColumns []\n                << dataColumn \"a\" (Strings [ \"C\", \"C\", \"D\", \"D\", \"E\", \"E\" ])\n                << dataColumn \"b\" (Numbers [ 2, 7, 1, 2, 6, 8 ])\n\n        enc =\n            encoding\n                << position X [ PName \"a\", PmType Nominal ]\n                << position Y [ PName \"b\", PmType Quantitative, PAggregate Mean ]\n    in\n    toVegaLite [ data [], mark Bar [], enc [] ]\n\n",
                "type": "List ( VLProperty, Spec ) -> Spec"
            },
            {
                "name": "tooltip",
                "comment": " Encode a tooltip channel. The first parameter is a list of text channel properties\nthat define the channel. The second parameter is a list of any previous channels to\nwhich this channel is to be added. This is usually implicit when chaining a\nset of encodings together with functional composition. See the\n[Vega-Lite documentation](https://vega.github.io/vega-lite/docs/encoding.html#text)\nfor further details on the text and tooltip channels and\n[Vega-Lite formatting documentation](https://vega.github.io/vega-lite/docs/format.html)\nfor formatting the appearance of the text.\n\n      enc =\n          encoding\n              << position X [ PName \"Horsepower\", PmType Quantitative ]\n              << position Y [ PName \"Miles_per_Gallon\", PmType Quantitative ]\n              << tooltip [ TName \"Year\", TmType Temporal, TFormat \"%Y\" ]\n\n",
                "type": "List TextChannel -> List LabelledSpec -> List LabelledSpec"
            },
            {
                "name": "transform",
                "comment": " Create a single transform from a list of transformation specifications. Note\nthat the order of transformations can be important, especially if labels created\nwith `calculateAs`, `timeUnitAs` and `binAs` are used in other transformations.\nUsing the functional composition pipeline idiom (as example below) allows you to\nprovide the transformations in the order intended in a clear manner.\n\n    trans =\n        transform\n            << filter (FExpr \"datum.year == 2010\")\n            << calculateAs \"datum.sex == 2 ? 'Female' : 'Male'\" \"gender\"\n\n",
                "type": "List LabelledSpec -> ( VLProperty, Spec )"
            },
            {
                "name": "utc",
                "comment": " Provides a UTC version of a given a time (coordinated universal time, independent\nof local time zones or daylight saving).\nFor example,\n\n    encoding\n        << position X [ PName \"date\", PmType Temporal, PTimeUnit (utc YearMonthDateHours) ]\n\n",
                "type": "TimeUnit -> TimeUnit"
            },
            {
                "name": "vConcat",
                "comment": " Assigns a list of specifications to be juxtaposed vertically in a visualization.\n\n    let\n        spec1 = ...\n        spec2 = ...\n    in\n    toVegaLite\n        [ dataFromUrl \"data/driving.json\" []\n        , vConcat [ spec1, spec2 ]\n        ]\n\n",
                "type": "List Spec -> ( VLProperty, Spec )"
            },
            {
                "name": "width",
                "comment": " Override the default width of the visualization. If not specified the width\nwill be calculated based on the content of the visualization.\n\n    enc = ...\n    toVegaLite\n        [ width 500\n        , dataFromUrl \"data/population.json\" []\n        , mark Bar []\n        , enc []\n        ]\n\n",
                "type": "Float -> ( VLProperty, Spec )"
            }
        ],
        "binops": []
    },
    {
        "name": "Vega",
        "comment": " This module will allow you to create a full Vega specification in Elm. A\nspecification is stored as a JSON object and contains sufficient declarative detail\nto specify the graphical output. While this a 'pure' Elm library, to create the\ngraphical output you probably want to send a Vega specification generated by\n`toVega` via a port to some JavaScript that invokes the Vega runtime.\n\n\n# Creating A Vega Specification\n\nFuture development of this package will allow full Vega specifications to be provided.\nCurrently, only a very limited set of Vega options detailed below, is provided for\ntesting purposes only.\n\n@docs toVega\n@docs VProperty\n\n",
        "unions": [
            {
                "name": "VProperty",
                "comment": " Top-level Vega properties. These are for testing purposes only prior to full\nVega spec generatation being made available.\n",
                "args": [],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "toVega",
                "comment": " Convert a list of Vega specifications into a single JSON object that may be\npassed to Vega for graphics generation.\nCurrently this is a placeholder only and is not available for use.\n",
                "type": "List ( VProperty, Spec ) -> Spec"
            }
        ],
        "binops": []
    }
]