1{
2  "$ref": "#/definitions/TopLevelSpec",
3  "$schema": "http://json-schema.org/draft-07/schema#",
4  "definitions": {
5    "Aggregate": {
6      "anyOf": [
7        {
8          "$ref": "#/definitions/AggregateOp"
9        },
10        {
11          "$ref": "#/definitions/ArgmaxDef"
12        },
13        {
14          "$ref": "#/definitions/ArgminDef"
15        }
16      ]
17    },
18    "AggregateOp": {
19      "enum": [
20        "argmax",
21        "argmin",
22        "average",
23        "count",
24        "distinct",
25        "max",
26        "mean",
27        "median",
28        "min",
29        "missing",
30        "q1",
31        "q3",
32        "ci0",
33        "ci1",
34        "stderr",
35        "stdev",
36        "stdevp",
37        "sum",
38        "valid",
39        "values",
40        "variance",
41        "variancep"
42      ],
43      "type": "string"
44    },
45    "AggregateTransform": {
46      "additionalProperties": false,
47      "properties": {
48        "aggregate": {
49          "description": "Array of objects that define fields to aggregate.",
50          "items": {
51            "$ref": "#/definitions/AggregatedFieldDef"
52          },
53          "type": "array"
54        },
55        "groupby": {
56          "description": "The data fields to group by. If not specified, a single group containing all data objects will be used.",
57          "items": {
58            "$ref": "#/definitions/FieldName"
59          },
60          "type": "array"
61        }
62      },
63      "required": [
64        "aggregate"
65      ],
66      "type": "object"
67    },
68    "AggregatedFieldDef": {
69      "additionalProperties": false,
70      "properties": {
71        "as": {
72          "$ref": "#/definitions/FieldName",
73          "description": "The output field names to use for each aggregated field."
74        },
75        "field": {
76          "$ref": "#/definitions/FieldName",
77          "description": "The data field for which to compute aggregate function. This is required for all aggregation operations except `\"count\"`."
78        },
79        "op": {
80          "$ref": "#/definitions/AggregateOp",
81          "description": "The aggregation operation to apply to the fields (e.g., sum, average or count).\nSee the [full list of supported aggregation operations](https://vega.github.io/vega-lite/docs/aggregate.html#ops)\nfor more information."
82        }
83      },
84      "required": [
85        "op",
86        "as"
87      ],
88      "type": "object"
89    },
90    "Align": {
91      "enum": [
92        "left",
93        "center",
94        "right"
95      ],
96      "type": "string"
97    },
98    "AnyMark": {
99      "anyOf": [
100        {
101          "$ref": "#/definitions/CompositeMark"
102        },
103        {
104          "$ref": "#/definitions/CompositeMarkDef"
105        },
106        {
107          "$ref": "#/definitions/Mark"
108        },
109        {
110          "$ref": "#/definitions/MarkDef"
111        }
112      ]
113    },
114    "AreaConfig": {
115      "additionalProperties": false,
116      "properties": {
117        "align": {
118          "$ref": "#/definitions/Align",
119          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
120        },
121        "angle": {
122          "description": "The rotation angle of the text, in degrees.",
123          "maximum": 360,
124          "minimum": 0,
125          "type": "number"
126        },
127        "baseline": {
128          "$ref": "#/definitions/TextBaseline",
129          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
130        },
131        "color": {
132          "$ref": "#/definitions/Color",
133          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
134        },
135        "cornerRadius": {
136          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
137          "type": "number"
138        },
139        "cursor": {
140          "$ref": "#/definitions/Cursor",
141          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
142        },
143        "dir": {
144          "$ref": "#/definitions/Dir",
145          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
146        },
147        "dx": {
148          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
149          "type": "number"
150        },
151        "dy": {
152          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
153          "type": "number"
154        },
155        "ellipsis": {
156          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
157          "type": "string"
158        },
159        "fill": {
160          "$ref": "#/definitions/Color",
161          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
162        },
163        "fillOpacity": {
164          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
165          "maximum": 1,
166          "minimum": 0,
167          "type": "number"
168        },
169        "filled": {
170          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
171          "type": "boolean"
172        },
173        "font": {
174          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
175          "type": "string"
176        },
177        "fontSize": {
178          "description": "The font size, in pixels.",
179          "type": "number"
180        },
181        "fontStyle": {
182          "$ref": "#/definitions/FontStyle",
183          "description": "The font style (e.g., `\"italic\"`)."
184        },
185        "fontWeight": {
186          "$ref": "#/definitions/FontWeight",
187          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
188        },
189        "height": {
190          "description": "Height of the marks.",
191          "type": "number"
192        },
193        "href": {
194          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
195          "format": "uri",
196          "type": "string"
197        },
198        "interpolate": {
199          "$ref": "#/definitions/Interpolate",
200          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
201        },
202        "limit": {
203          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
204          "type": "number"
205        },
206        "line": {
207          "anyOf": [
208            {
209              "type": "boolean"
210            },
211            {
212              "$ref": "#/definitions/OverlayMarkDef"
213            }
214          ],
215          "description": "A flag for overlaying line on top of area marks, or an object defining the properties of the overlayed lines.\n\n- If this value is an empty object (`{}`) or `true`, lines with default properties will be used.\n\n- If this value is `false`, no lines would be automatically added to area marks.\n\n__Default value:__ `false`."
216        },
217        "opacity": {
218          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
219          "maximum": 1,
220          "minimum": 0,
221          "type": "number"
222        },
223        "order": {
224          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
225          "type": [
226            "null",
227            "boolean"
228          ]
229        },
230        "orient": {
231          "$ref": "#/definitions/Orientation",
232          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
233        },
234        "point": {
235          "anyOf": [
236            {
237              "type": "boolean"
238            },
239            {
240              "$ref": "#/definitions/OverlayMarkDef"
241            },
242            {
243              "enum": [
244                "transparent"
245              ],
246              "type": "string"
247            }
248          ],
249          "description": "A flag for overlaying points on top of line or area marks, or an object defining the properties of the overlayed points.\n\n- If this property is `\"transparent\"`, transparent points will be used (for enhancing tooltips and selections).\n\n- If this property is an empty object (`{}`) or `true`, filled points with default properties will be used.\n\n- If this property is `false`, no points would be automatically added to line or area marks.\n\n__Default value:__ `false`."
250        },
251        "radius": {
252          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
253          "minimum": 0,
254          "type": "number"
255        },
256        "shape": {
257          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
258          "type": "string"
259        },
260        "size": {
261          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
262          "minimum": 0,
263          "type": "number"
264        },
265        "stroke": {
266          "$ref": "#/definitions/Color",
267          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
268        },
269        "strokeCap": {
270          "$ref": "#/definitions/StrokeCap",
271          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
272        },
273        "strokeDash": {
274          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
275          "items": {
276            "type": "number"
277          },
278          "type": "array"
279        },
280        "strokeDashOffset": {
281          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
282          "type": "number"
283        },
284        "strokeJoin": {
285          "$ref": "#/definitions/StrokeJoin",
286          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
287        },
288        "strokeMiterLimit": {
289          "description": "The miter limit at which to bevel a line join.",
290          "type": "number"
291        },
292        "strokeOpacity": {
293          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
294          "maximum": 1,
295          "minimum": 0,
296          "type": "number"
297        },
298        "strokeWidth": {
299          "description": "The stroke width, in pixels.",
300          "minimum": 0,
301          "type": "number"
302        },
303        "tension": {
304          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
305          "maximum": 1,
306          "minimum": 0,
307          "type": "number"
308        },
309        "text": {
310          "description": "Placeholder text if the `text` channel is not specified",
311          "type": "string"
312        },
313        "theta": {
314          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
315          "type": "number"
316        },
317        "tooltip": {
318          "anyOf": [
319            {
320              "$ref": "#/definitions/Value"
321            },
322            {
323              "$ref": "#/definitions/TooltipContent"
324            },
325            {
326              "type": "null"
327            }
328          ],
329          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
330        },
331        "width": {
332          "description": "Width of the marks.",
333          "type": "number"
334        },
335        "x": {
336          "anyOf": [
337            {
338              "type": "number"
339            },
340            {
341              "enum": [
342                "width"
343              ],
344              "type": "string"
345            }
346          ],
347          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
348        },
349        "x2": {
350          "anyOf": [
351            {
352              "type": "number"
353            },
354            {
355              "enum": [
356                "width"
357              ],
358              "type": "string"
359            }
360          ],
361          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
362        },
363        "y": {
364          "anyOf": [
365            {
366              "type": "number"
367            },
368            {
369              "enum": [
370                "height"
371              ],
372              "type": "string"
373            }
374          ],
375          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
376        },
377        "y2": {
378          "anyOf": [
379            {
380              "type": "number"
381            },
382            {
383              "enum": [
384                "width"
385              ],
386              "type": "string"
387            }
388          ],
389          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
390        }
391      },
392      "type": "object"
393    },
394    "ArgmaxDef": {
395      "additionalProperties": false,
396      "properties": {
397        "argmax": {
398          "type": "string"
399        }
400      },
401      "required": [
402        "argmax"
403      ],
404      "type": "object"
405    },
406    "ArgminDef": {
407      "additionalProperties": false,
408      "properties": {
409        "argmin": {
410          "type": "string"
411        }
412      },
413      "required": [
414        "argmin"
415      ],
416      "type": "object"
417    },
418    "AutoSizeParams": {
419      "additionalProperties": false,
420      "properties": {
421        "contains": {
422          "description": "Determines how size calculation should be performed, one of `\"content\"` or `\"padding\"`. The default setting (`\"content\"`) interprets the width and height settings as the data rectangle (plotting) dimensions, to which padding is then added. In contrast, the `\"padding\"` setting includes the padding within the view size calculations, such that the width and height settings indicate the **total** intended size of the view.\n\n__Default value__: `\"content\"`",
423          "enum": [
424            "content",
425            "padding"
426          ],
427          "type": "string"
428        },
429        "resize": {
430          "description": "A boolean flag indicating if autosize layout should be re-calculated on every view update.\n\n__Default value__: `false`",
431          "type": "boolean"
432        },
433        "type": {
434          "$ref": "#/definitions/AutosizeType",
435          "description": "The sizing format type. One of `\"pad\"`, `\"fit\"` or `\"none\"`. See the [autosize type](https://vega.github.io/vega-lite/docs/size.html#autosize) documentation for descriptions of each.\n\n__Default value__: `\"pad\"`"
436        }
437      },
438      "type": "object"
439    },
440    "AutosizeType": {
441      "enum": [
442        "pad",
443        "fit",
444        "none"
445      ],
446      "type": "string"
447    },
448    "Axis": {
449      "additionalProperties": false,
450      "properties": {
451        "bandPosition": {
452          "description": "An interpolation fraction indicating where, for `band` scales, axis ticks should be positioned. A value of `0` places ticks at the left edge of their bands. A value of `0.5` places ticks in the middle of their bands.\n\n  __Default value:__ `0.5`",
453          "type": "number"
454        },
455        "domain": {
456          "description": "A boolean flag indicating if the domain (the axis baseline) should be included as part of the axis.\n\n__Default value:__ `true`",
457          "type": "boolean"
458        },
459        "domainColor": {
460          "$ref": "#/definitions/Color",
461          "description": "Color of axis domain line.\n\n__Default value:__ `\"gray\"`."
462        },
463        "domainDash": {
464          "description": "An array of alternating [stroke, space] lengths for dashed domain lines.",
465          "items": {
466            "type": "number"
467          },
468          "type": "array"
469        },
470        "domainDashOffset": {
471          "description": "The pixel offset at which to start drawing with the domain dash array.",
472          "type": "number"
473        },
474        "domainOpacity": {
475          "description": "Opacity of the axis domain line.",
476          "type": "number"
477        },
478        "domainWidth": {
479          "description": "Stroke width of axis domain line\n\n__Default value:__ `1`",
480          "type": "number"
481        },
482        "format": {
483          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
484          "type": "string"
485        },
486        "formatType": {
487          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
488          "enum": [
489            "number",
490            "time"
491          ],
492          "type": "string"
493        },
494        "grid": {
495          "description": "A boolean flag indicating if grid lines should be included as part of the axis\n\n__Default value:__ `true` for [continuous scales](https://vega.github.io/vega-lite/docs/scale.html#continuous) that are not binned; otherwise, `false`.",
496          "type": "boolean"
497        },
498        "gridColor": {
499          "$ref": "#/definitions/Color",
500          "description": "Color of gridlines.\n\n__Default value:__ `\"lightGray\"`."
501        },
502        "gridDash": {
503          "description": "An array of alternating [stroke, space] lengths for dashed grid lines.",
504          "items": {
505            "type": "number"
506          },
507          "type": "array"
508        },
509        "gridDashOffset": {
510          "description": "The pixel offset at which to start drawing with the grid dash array.",
511          "type": "number"
512        },
513        "gridOpacity": {
514          "description": "The stroke opacity of grid (value between [0,1])\n\n__Default value:__ `1`",
515          "maximum": 1,
516          "minimum": 0,
517          "type": "number"
518        },
519        "gridWidth": {
520          "description": "The grid width, in pixels.\n\n__Default value:__ `1`",
521          "minimum": 0,
522          "type": "number"
523        },
524        "labelAlign": {
525          "$ref": "#/definitions/Align",
526          "description": "Horizontal text alignment of axis tick labels, overriding the default setting for the current axis orientation."
527        },
528        "labelAngle": {
529          "description": "The rotation angle of the axis labels.\n\n__Default value:__ `-90` for nominal and ordinal fields; `0` otherwise.",
530          "maximum": 360,
531          "minimum": -360,
532          "type": "number"
533        },
534        "labelBaseline": {
535          "$ref": "#/definitions/TextBaseline",
536          "description": "Vertical text baseline of axis tick labels, overriding the default setting for the current axis orientation. Can be `\"top\"`, `\"middle\"`, `\"bottom\"`, or `\"alphabetic\"`."
537        },
538        "labelBound": {
539          "description": "Indicates if labels should be hidden if they exceed the axis range. If `false` (the default) no bounds overlap analysis is performed. If `true`, labels will be hidden if they exceed the axis range by more than 1 pixel. If this property is a number, it specifies the pixel tolerance: the maximum amount by which a label bounding box may exceed the axis range.\n\n__Default value:__ `false`.",
540          "type": [
541            "number",
542            "boolean"
543          ]
544        },
545        "labelColor": {
546          "$ref": "#/definitions/Color",
547          "description": "The color of the tick label, can be in hex color code or regular color name."
548        },
549        "labelFlush": {
550          "description": "Indicates if the first and last axis labels should be aligned flush with the scale range. Flush alignment for a horizontal axis will left-align the first label and right-align the last label. For vertical axes, bottom and top text baselines are applied instead. If this property is a number, it also indicates the number of pixels by which to offset the first and last labels; for example, a value of 2 will flush-align the first and last labels and also push them 2 pixels outward from the center of the axis. The additional adjustment can sometimes help the labels better visually group with corresponding axis ticks.\n\n__Default value:__ `true` for axis of a continuous x-scale. Otherwise, `false`.",
551          "type": [
552            "boolean",
553            "number"
554          ]
555        },
556        "labelFlushOffset": {
557          "description": "Indicates the number of pixels by which to offset flush-adjusted labels. For example, a value of `2` will push flush-adjusted labels 2 pixels outward from the center of the axis. Offsets can help the labels better visually group with corresponding axis ticks.\n\n__Default value:__ `0`.",
558          "type": "number"
559        },
560        "labelFont": {
561          "description": "The font of the tick label.",
562          "type": "string"
563        },
564        "labelFontSize": {
565          "description": "The font size of the label, in pixels.",
566          "minimum": 0,
567          "type": "number"
568        },
569        "labelFontStyle": {
570          "$ref": "#/definitions/FontStyle",
571          "description": "Font style of the title."
572        },
573        "labelFontWeight": {
574          "$ref": "#/definitions/FontWeight",
575          "description": "Font weight of axis tick labels."
576        },
577        "labelLimit": {
578          "description": "Maximum allowed pixel width of axis tick labels.\n\n__Default value:__ `180`",
579          "type": "number"
580        },
581        "labelOpacity": {
582          "description": "The opacity of the labels.",
583          "type": "number"
584        },
585        "labelOverlap": {
586          "$ref": "#/definitions/LabelOverlap",
587          "description": "The strategy to use for resolving overlap of axis labels. If `false` (the default), no overlap reduction is attempted. If set to `true` or `\"parity\"`, a strategy of removing every other label is used (this works well for standard linear axes). If set to `\"greedy\"`, a linear scan of the labels is performed, removing any labels that overlaps with the last visible label (this often works better for log-scaled axes).\n\n__Default value:__ `true` for non-nominal fields with non-log scales; `\"greedy\"` for log scales; otherwise `false`."
588        },
589        "labelPadding": {
590          "description": "The padding, in pixels, between axis and text labels.\n\n__Default value:__ `2`",
591          "type": "number"
592        },
593        "labelSeparation": {
594          "description": "The minimum separation that must be between label bounding boxes for them to be considered non-overlapping (default `0`). This property is ignored if *labelOverlap* resolution is not enabled.",
595          "type": "number"
596        },
597        "labels": {
598          "description": "A boolean flag indicating if labels should be included as part of the axis.\n\n__Default value:__ `true`.",
599          "type": "boolean"
600        },
601        "maxExtent": {
602          "description": "The maximum extent in pixels that axis ticks and labels should use. This determines a maximum offset value for axis titles.\n\n__Default value:__ `undefined`.",
603          "type": "number"
604        },
605        "minExtent": {
606          "description": "The minimum extent in pixels that axis ticks and labels should use. This determines a minimum offset value for axis titles.\n\n__Default value:__ `30` for y-axis; `undefined` for x-axis.",
607          "type": "number"
608        },
609        "offset": {
610          "description": "The offset, in pixels, by which to displace the axis from the edge of the enclosing group or data rectangle.\n\n__Default value:__ derived from the [axis config](https://vega.github.io/vega-lite/docs/config.html#facet-scale-config)'s `offset` (`0` by default)",
611          "type": "number"
612        },
613        "orient": {
614          "$ref": "#/definitions/AxisOrient",
615          "description": "The orientation of the axis. One of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"`. The orientation can be used to further specialize the axis type (e.g., a y-axis oriented towards the right edge of the chart).\n\n__Default value:__ `\"bottom\"` for x-axes and `\"left\"` for y-axes."
616        },
617        "position": {
618          "description": "The anchor position of the axis in pixels. For x-axes with top or bottom orientation, this sets the axis group x coordinate. For y-axes with left or right orientation, this sets the axis group y coordinate.\n\n__Default value__: `0`",
619          "type": "number"
620        },
621        "tickColor": {
622          "$ref": "#/definitions/Color",
623          "description": "The color of the axis's tick.\n\n__Default value:__ `\"gray\"`"
624        },
625        "tickCount": {
626          "description": "A desired number of ticks, for axes visualizing quantitative scales. The resulting number may be different so that values are \"nice\" (multiples of 2, 5, 10) and lie within the underlying scale's range.",
627          "type": "number"
628        },
629        "tickDash": {
630          "description": "An array of alternating [stroke, space] lengths for dashed tick mark lines.",
631          "items": {
632            "type": "number"
633          },
634          "type": "array"
635        },
636        "tickDashOffset": {
637          "description": "The pixel offset at which to start drawing with the tick mark dash array.",
638          "type": "number"
639        },
640        "tickExtra": {
641          "description": "Boolean flag indicating if an extra axis tick should be added for the initial position of the axis. This flag is useful for styling axes for `band` scales such that ticks are placed on band boundaries rather in the middle of a band. Use in conjunction with `\"bandPosition\": 1` and an axis `\"padding\"` value of `0`.",
642          "type": "boolean"
643        },
644        "tickMinStep": {
645          "description": "The minimum desired step between axis ticks, in terms of scale domain values. For example, a value of `1` indicates that ticks should not be less than 1 unit apart. If `tickMinStep` is specified, the `tickCount` value will be adjusted, if necessary, to enforce the minimum step value.\n\n__Default value__: `undefined`",
646          "type": "number"
647        },
648        "tickOffset": {
649          "description": "Position offset in pixels to apply to ticks, labels, and gridlines.",
650          "type": "number"
651        },
652        "tickOpacity": {
653          "description": "Opacity of the ticks.",
654          "type": "number"
655        },
656        "tickRound": {
657          "description": "Boolean flag indicating if pixel position values should be rounded to the nearest integer.\n\n__Default value:__ `true`",
658          "type": "boolean"
659        },
660        "tickSize": {
661          "description": "The size in pixels of axis ticks.\n\n__Default value:__ `5`",
662          "minimum": 0,
663          "type": "number"
664        },
665        "tickWidth": {
666          "description": "The width, in pixels, of ticks.\n\n__Default value:__ `1`",
667          "minimum": 0,
668          "type": "number"
669        },
670        "ticks": {
671          "description": "Boolean value that determines whether the axis should include ticks.\n\n__Default value:__ `true`",
672          "type": "boolean"
673        },
674        "title": {
675          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
676          "type": [
677            "string",
678            "null"
679          ]
680        },
681        "titleAlign": {
682          "$ref": "#/definitions/Align",
683          "description": "Horizontal text alignment of axis titles."
684        },
685        "titleAnchor": {
686          "$ref": "#/definitions/TitleAnchor",
687          "description": "Text anchor position for placing axis titles."
688        },
689        "titleAngle": {
690          "description": "Angle in degrees of axis titles.",
691          "type": "number"
692        },
693        "titleBaseline": {
694          "$ref": "#/definitions/TextBaseline",
695          "description": "Vertical text baseline for axis titles."
696        },
697        "titleColor": {
698          "$ref": "#/definitions/Color",
699          "description": "Color of the title, can be in hex color code or regular color name."
700        },
701        "titleFont": {
702          "description": "Font of the title. (e.g., `\"Helvetica Neue\"`).",
703          "type": "string"
704        },
705        "titleFontSize": {
706          "description": "Font size of the title.",
707          "minimum": 0,
708          "type": "number"
709        },
710        "titleFontStyle": {
711          "$ref": "#/definitions/FontStyle",
712          "description": "Font style of the title."
713        },
714        "titleFontWeight": {
715          "$ref": "#/definitions/FontWeight",
716          "description": "Font weight of the title.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
717        },
718        "titleLimit": {
719          "description": "Maximum allowed pixel width of axis titles.",
720          "minimum": 0,
721          "type": "number"
722        },
723        "titleOpacity": {
724          "description": "Opacity of the axis title.",
725          "type": "number"
726        },
727        "titlePadding": {
728          "description": "The padding, in pixels, between title and axis.",
729          "type": "number"
730        },
731        "titleX": {
732          "description": "X-coordinate of the axis title relative to the axis group.",
733          "type": "number"
734        },
735        "titleY": {
736          "description": "Y-coordinate of the axis title relative to the axis group.",
737          "type": "number"
738        },
739        "values": {
740          "anyOf": [
741            {
742              "items": {
743                "type": "number"
744              },
745              "type": "array"
746            },
747            {
748              "items": {
749                "type": "string"
750              },
751              "type": "array"
752            },
753            {
754              "items": {
755                "type": "boolean"
756              },
757              "type": "array"
758            },
759            {
760              "items": {
761                "$ref": "#/definitions/DateTime"
762              },
763              "type": "array"
764            }
765          ],
766          "description": "Explicitly set the visible axis tick values."
767        },
768        "zindex": {
769          "description": "A non-negative integer indicating the z-index of the axis.\nIf zindex is 0, axes should be drawn behind all chart elements.\nTo put them in front, use `\"zindex = 1\"`.\n\n__Default value:__ `1` (in front of the marks) for actual axis and `0` (behind the marks) for grids.",
770          "minimum": 0,
771          "type": "number"
772        }
773      },
774      "type": "object"
775    },
776    "AxisConfig": {
777      "additionalProperties": false,
778      "properties": {
779        "bandPosition": {
780          "description": "An interpolation fraction indicating where, for `band` scales, axis ticks should be positioned. A value of `0` places ticks at the left edge of their bands. A value of `0.5` places ticks in the middle of their bands.\n\n  __Default value:__ `0.5`",
781          "type": "number"
782        },
783        "domain": {
784          "description": "A boolean flag indicating if the domain (the axis baseline) should be included as part of the axis.\n\n__Default value:__ `true`",
785          "type": "boolean"
786        },
787        "domainColor": {
788          "$ref": "#/definitions/Color",
789          "description": "Color of axis domain line.\n\n__Default value:__ `\"gray\"`."
790        },
791        "domainDash": {
792          "description": "An array of alternating [stroke, space] lengths for dashed domain lines.",
793          "items": {
794            "type": "number"
795          },
796          "type": "array"
797        },
798        "domainDashOffset": {
799          "description": "The pixel offset at which to start drawing with the domain dash array.",
800          "type": "number"
801        },
802        "domainOpacity": {
803          "description": "Opacity of the axis domain line.",
804          "type": "number"
805        },
806        "domainWidth": {
807          "description": "Stroke width of axis domain line\n\n__Default value:__ `1`",
808          "type": "number"
809        },
810        "grid": {
811          "description": "A boolean flag indicating if grid lines should be included as part of the axis\n\n__Default value:__ `true` for [continuous scales](https://vega.github.io/vega-lite/docs/scale.html#continuous) that are not binned; otherwise, `false`.",
812          "type": "boolean"
813        },
814        "gridColor": {
815          "$ref": "#/definitions/Color",
816          "description": "Color of gridlines.\n\n__Default value:__ `\"lightGray\"`."
817        },
818        "gridDash": {
819          "description": "An array of alternating [stroke, space] lengths for dashed grid lines.",
820          "items": {
821            "type": "number"
822          },
823          "type": "array"
824        },
825        "gridDashOffset": {
826          "description": "The pixel offset at which to start drawing with the grid dash array.",
827          "type": "number"
828        },
829        "gridOpacity": {
830          "description": "The stroke opacity of grid (value between [0,1])\n\n__Default value:__ `1`",
831          "maximum": 1,
832          "minimum": 0,
833          "type": "number"
834        },
835        "gridWidth": {
836          "description": "The grid width, in pixels.\n\n__Default value:__ `1`",
837          "minimum": 0,
838          "type": "number"
839        },
840        "labelAlign": {
841          "$ref": "#/definitions/Align",
842          "description": "Horizontal text alignment of axis tick labels, overriding the default setting for the current axis orientation."
843        },
844        "labelAngle": {
845          "description": "The rotation angle of the axis labels.\n\n__Default value:__ `-90` for nominal and ordinal fields; `0` otherwise.",
846          "maximum": 360,
847          "minimum": -360,
848          "type": "number"
849        },
850        "labelBaseline": {
851          "$ref": "#/definitions/TextBaseline",
852          "description": "Vertical text baseline of axis tick labels, overriding the default setting for the current axis orientation. Can be `\"top\"`, `\"middle\"`, `\"bottom\"`, or `\"alphabetic\"`."
853        },
854        "labelBound": {
855          "description": "Indicates if labels should be hidden if they exceed the axis range. If `false` (the default) no bounds overlap analysis is performed. If `true`, labels will be hidden if they exceed the axis range by more than 1 pixel. If this property is a number, it specifies the pixel tolerance: the maximum amount by which a label bounding box may exceed the axis range.\n\n__Default value:__ `false`.",
856          "type": [
857            "number",
858            "boolean"
859          ]
860        },
861        "labelColor": {
862          "$ref": "#/definitions/Color",
863          "description": "The color of the tick label, can be in hex color code or regular color name."
864        },
865        "labelFlush": {
866          "description": "Indicates if the first and last axis labels should be aligned flush with the scale range. Flush alignment for a horizontal axis will left-align the first label and right-align the last label. For vertical axes, bottom and top text baselines are applied instead. If this property is a number, it also indicates the number of pixels by which to offset the first and last labels; for example, a value of 2 will flush-align the first and last labels and also push them 2 pixels outward from the center of the axis. The additional adjustment can sometimes help the labels better visually group with corresponding axis ticks.\n\n__Default value:__ `true` for axis of a continuous x-scale. Otherwise, `false`.",
867          "type": [
868            "boolean",
869            "number"
870          ]
871        },
872        "labelFlushOffset": {
873          "description": "Indicates the number of pixels by which to offset flush-adjusted labels. For example, a value of `2` will push flush-adjusted labels 2 pixels outward from the center of the axis. Offsets can help the labels better visually group with corresponding axis ticks.\n\n__Default value:__ `0`.",
874          "type": "number"
875        },
876        "labelFont": {
877          "description": "The font of the tick label.",
878          "type": "string"
879        },
880        "labelFontSize": {
881          "description": "The font size of the label, in pixels.",
882          "minimum": 0,
883          "type": "number"
884        },
885        "labelFontStyle": {
886          "$ref": "#/definitions/FontStyle",
887          "description": "Font style of the title."
888        },
889        "labelFontWeight": {
890          "$ref": "#/definitions/FontWeight",
891          "description": "Font weight of axis tick labels."
892        },
893        "labelLimit": {
894          "description": "Maximum allowed pixel width of axis tick labels.\n\n__Default value:__ `180`",
895          "type": "number"
896        },
897        "labelOpacity": {
898          "description": "The opacity of the labels.",
899          "type": "number"
900        },
901        "labelOverlap": {
902          "$ref": "#/definitions/LabelOverlap",
903          "description": "The strategy to use for resolving overlap of axis labels. If `false` (the default), no overlap reduction is attempted. If set to `true` or `\"parity\"`, a strategy of removing every other label is used (this works well for standard linear axes). If set to `\"greedy\"`, a linear scan of the labels is performed, removing any labels that overlaps with the last visible label (this often works better for log-scaled axes).\n\n__Default value:__ `true` for non-nominal fields with non-log scales; `\"greedy\"` for log scales; otherwise `false`."
904        },
905        "labelPadding": {
906          "description": "The padding, in pixels, between axis and text labels.\n\n__Default value:__ `2`",
907          "type": "number"
908        },
909        "labelSeparation": {
910          "description": "The minimum separation that must be between label bounding boxes for them to be considered non-overlapping (default `0`). This property is ignored if *labelOverlap* resolution is not enabled.",
911          "type": "number"
912        },
913        "labels": {
914          "description": "A boolean flag indicating if labels should be included as part of the axis.\n\n__Default value:__ `true`.",
915          "type": "boolean"
916        },
917        "maxExtent": {
918          "description": "The maximum extent in pixels that axis ticks and labels should use. This determines a maximum offset value for axis titles.\n\n__Default value:__ `undefined`.",
919          "type": "number"
920        },
921        "minExtent": {
922          "description": "The minimum extent in pixels that axis ticks and labels should use. This determines a minimum offset value for axis titles.\n\n__Default value:__ `30` for y-axis; `undefined` for x-axis.",
923          "type": "number"
924        },
925        "orient": {
926          "$ref": "#/definitions/AxisOrient",
927          "description": "The orientation of the axis. One of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"`. The orientation can be used to further specialize the axis type (e.g., a y-axis oriented towards the right edge of the chart).\n\n__Default value:__ `\"bottom\"` for x-axes and `\"left\"` for y-axes."
928        },
929        "shortTimeLabels": {
930          "description": "Whether month names and weekday names should be abbreviated.\n\n__Default value:__  `false`",
931          "type": "boolean"
932        },
933        "tickColor": {
934          "$ref": "#/definitions/Color",
935          "description": "The color of the axis's tick.\n\n__Default value:__ `\"gray\"`"
936        },
937        "tickDash": {
938          "description": "An array of alternating [stroke, space] lengths for dashed tick mark lines.",
939          "items": {
940            "type": "number"
941          },
942          "type": "array"
943        },
944        "tickDashOffset": {
945          "description": "The pixel offset at which to start drawing with the tick mark dash array.",
946          "type": "number"
947        },
948        "tickExtra": {
949          "description": "Boolean flag indicating if an extra axis tick should be added for the initial position of the axis. This flag is useful for styling axes for `band` scales such that ticks are placed on band boundaries rather in the middle of a band. Use in conjunction with `\"bandPosition\": 1` and an axis `\"padding\"` value of `0`.",
950          "type": "boolean"
951        },
952        "tickOffset": {
953          "description": "Position offset in pixels to apply to ticks, labels, and gridlines.",
954          "type": "number"
955        },
956        "tickOpacity": {
957          "description": "Opacity of the ticks.",
958          "type": "number"
959        },
960        "tickRound": {
961          "description": "Boolean flag indicating if pixel position values should be rounded to the nearest integer.\n\n__Default value:__ `true`",
962          "type": "boolean"
963        },
964        "tickSize": {
965          "description": "The size in pixels of axis ticks.\n\n__Default value:__ `5`",
966          "minimum": 0,
967          "type": "number"
968        },
969        "tickWidth": {
970          "description": "The width, in pixels, of ticks.\n\n__Default value:__ `1`",
971          "minimum": 0,
972          "type": "number"
973        },
974        "ticks": {
975          "description": "Boolean value that determines whether the axis should include ticks.\n\n__Default value:__ `true`",
976          "type": "boolean"
977        },
978        "title": {
979          "description": "Set to null to disable title for the axis, legend, or header.",
980          "type": "null"
981        },
982        "titleAlign": {
983          "$ref": "#/definitions/Align",
984          "description": "Horizontal text alignment of axis titles."
985        },
986        "titleAnchor": {
987          "$ref": "#/definitions/TitleAnchor",
988          "description": "Text anchor position for placing axis titles."
989        },
990        "titleAngle": {
991          "description": "Angle in degrees of axis titles.",
992          "type": "number"
993        },
994        "titleBaseline": {
995          "$ref": "#/definitions/TextBaseline",
996          "description": "Vertical text baseline for axis titles."
997        },
998        "titleColor": {
999          "$ref": "#/definitions/Color",
1000          "description": "Color of the title, can be in hex color code or regular color name."
1001        },
1002        "titleFont": {
1003          "description": "Font of the title. (e.g., `\"Helvetica Neue\"`).",
1004          "type": "string"
1005        },
1006        "titleFontSize": {
1007          "description": "Font size of the title.",
1008          "minimum": 0,
1009          "type": "number"
1010        },
1011        "titleFontStyle": {
1012          "$ref": "#/definitions/FontStyle",
1013          "description": "Font style of the title."
1014        },
1015        "titleFontWeight": {
1016          "$ref": "#/definitions/FontWeight",
1017          "description": "Font weight of the title.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
1018        },
1019        "titleLimit": {
1020          "description": "Maximum allowed pixel width of axis titles.",
1021          "minimum": 0,
1022          "type": "number"
1023        },
1024        "titleOpacity": {
1025          "description": "Opacity of the axis title.",
1026          "type": "number"
1027        },
1028        "titlePadding": {
1029          "description": "The padding, in pixels, between title and axis.",
1030          "type": "number"
1031        },
1032        "titleX": {
1033          "description": "X-coordinate of the axis title relative to the axis group.",
1034          "type": "number"
1035        },
1036        "titleY": {
1037          "description": "Y-coordinate of the axis title relative to the axis group.",
1038          "type": "number"
1039        }
1040      },
1041      "type": "object"
1042    },
1043    "AxisOrient": {
1044      "enum": [
1045        "top",
1046        "bottom",
1047        "left",
1048        "right"
1049      ],
1050      "type": "string"
1051    },
1052    "AxisResolveMap": {
1053      "additionalProperties": false,
1054      "properties": {
1055        "x": {
1056          "$ref": "#/definitions/ResolveMode"
1057        },
1058        "y": {
1059          "$ref": "#/definitions/ResolveMode"
1060        }
1061      },
1062      "type": "object"
1063    },
1064    "BaseLegendLayout": {
1065      "additionalProperties": false,
1066      "properties": {
1067        "anchor": {
1068          "$ref": "#/definitions/TitleAnchor",
1069          "description": "The anchor point for legend orient group layout."
1070        },
1071        "bounds": {
1072          "$ref": "#/definitions/LayoutBounds",
1073          "description": "The bounds calculation to use for legend orient group layout."
1074        },
1075        "center": {
1076          "anyOf": [
1077            {
1078              "type": "boolean"
1079            },
1080            {
1081              "$ref": "#/definitions/SignalRef"
1082            }
1083          ],
1084          "description": "A flag to center legends within a shared orient group."
1085        },
1086        "direction": {
1087          "anyOf": [
1088            {
1089              "$ref": "#/definitions/Orientation"
1090            },
1091            {
1092              "$ref": "#/definitions/SignalRef"
1093            }
1094          ],
1095          "description": "The layout direction for legend orient group layout."
1096        },
1097        "margin": {
1098          "anyOf": [
1099            {
1100              "type": "number"
1101            },
1102            {
1103              "$ref": "#/definitions/SignalRef"
1104            }
1105          ],
1106          "description": "The pixel margin between legends within a orient group."
1107        },
1108        "offset": {
1109          "anyOf": [
1110            {
1111              "type": "number"
1112            },
1113            {
1114              "$ref": "#/definitions/SignalRef"
1115            }
1116          ],
1117          "description": "The pixel offset from the chart body for a legend orient group."
1118        }
1119      },
1120      "type": "object"
1121    },
1122    "BaseMarkConfig": {
1123      "additionalProperties": false,
1124      "properties": {
1125        "align": {
1126          "$ref": "#/definitions/Align",
1127          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
1128        },
1129        "angle": {
1130          "description": "The rotation angle of the text, in degrees.",
1131          "maximum": 360,
1132          "minimum": 0,
1133          "type": "number"
1134        },
1135        "baseline": {
1136          "$ref": "#/definitions/TextBaseline",
1137          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
1138        },
1139        "cornerRadius": {
1140          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
1141          "type": "number"
1142        },
1143        "cursor": {
1144          "$ref": "#/definitions/Cursor",
1145          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
1146        },
1147        "dir": {
1148          "$ref": "#/definitions/Dir",
1149          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
1150        },
1151        "dx": {
1152          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
1153          "type": "number"
1154        },
1155        "dy": {
1156          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
1157          "type": "number"
1158        },
1159        "ellipsis": {
1160          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
1161          "type": "string"
1162        },
1163        "fill": {
1164          "$ref": "#/definitions/Color",
1165          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
1166        },
1167        "fillOpacity": {
1168          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
1169          "maximum": 1,
1170          "minimum": 0,
1171          "type": "number"
1172        },
1173        "font": {
1174          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
1175          "type": "string"
1176        },
1177        "fontSize": {
1178          "description": "The font size, in pixels.",
1179          "type": "number"
1180        },
1181        "fontStyle": {
1182          "$ref": "#/definitions/FontStyle",
1183          "description": "The font style (e.g., `\"italic\"`)."
1184        },
1185        "fontWeight": {
1186          "$ref": "#/definitions/FontWeight",
1187          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
1188        },
1189        "height": {
1190          "description": "Height of the marks.",
1191          "type": "number"
1192        },
1193        "href": {
1194          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
1195          "format": "uri",
1196          "type": "string"
1197        },
1198        "interpolate": {
1199          "$ref": "#/definitions/Interpolate",
1200          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
1201        },
1202        "limit": {
1203          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
1204          "type": "number"
1205        },
1206        "opacity": {
1207          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
1208          "maximum": 1,
1209          "minimum": 0,
1210          "type": "number"
1211        },
1212        "orient": {
1213          "$ref": "#/definitions/Orientation",
1214          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
1215        },
1216        "radius": {
1217          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
1218          "minimum": 0,
1219          "type": "number"
1220        },
1221        "shape": {
1222          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
1223          "type": "string"
1224        },
1225        "size": {
1226          "description": "The pixel area each the point/circle/square.\nFor example: in the case of circles, the radius is determined in part by the square root of the size value.\n\n__Default value:__ `30`",
1227          "minimum": 0,
1228          "type": "number"
1229        },
1230        "stroke": {
1231          "$ref": "#/definitions/Color",
1232          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
1233        },
1234        "strokeCap": {
1235          "$ref": "#/definitions/StrokeCap",
1236          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
1237        },
1238        "strokeDash": {
1239          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
1240          "items": {
1241            "type": "number"
1242          },
1243          "type": "array"
1244        },
1245        "strokeDashOffset": {
1246          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
1247          "type": "number"
1248        },
1249        "strokeJoin": {
1250          "$ref": "#/definitions/StrokeJoin",
1251          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
1252        },
1253        "strokeMiterLimit": {
1254          "description": "The miter limit at which to bevel a line join.",
1255          "type": "number"
1256        },
1257        "strokeOpacity": {
1258          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
1259          "maximum": 1,
1260          "minimum": 0,
1261          "type": "number"
1262        },
1263        "strokeWidth": {
1264          "description": "The stroke width, in pixels.",
1265          "minimum": 0,
1266          "type": "number"
1267        },
1268        "tension": {
1269          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
1270          "maximum": 1,
1271          "minimum": 0,
1272          "type": "number"
1273        },
1274        "text": {
1275          "description": "Placeholder text if the `text` channel is not specified",
1276          "type": "string"
1277        },
1278        "theta": {
1279          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
1280          "type": "number"
1281        },
1282        "tooltip": {
1283          "description": "The tooltip text to show upon mouse hover."
1284        },
1285        "width": {
1286          "description": "Width of the marks.",
1287          "type": "number"
1288        },
1289        "x": {
1290          "anyOf": [
1291            {
1292              "type": "number"
1293            },
1294            {
1295              "enum": [
1296                "width"
1297              ],
1298              "type": "string"
1299            }
1300          ],
1301          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
1302        },
1303        "x2": {
1304          "anyOf": [
1305            {
1306              "type": "number"
1307            },
1308            {
1309              "enum": [
1310                "width"
1311              ],
1312              "type": "string"
1313            }
1314          ],
1315          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
1316        },
1317        "y": {
1318          "anyOf": [
1319            {
1320              "type": "number"
1321            },
1322            {
1323              "enum": [
1324                "height"
1325              ],
1326              "type": "string"
1327            }
1328          ],
1329          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
1330        },
1331        "y2": {
1332          "anyOf": [
1333            {
1334              "type": "number"
1335            },
1336            {
1337              "enum": [
1338                "width"
1339              ],
1340              "type": "string"
1341            }
1342          ],
1343          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
1344        }
1345      },
1346      "type": "object"
1347    },
1348    "BaseTitleConfig": {
1349      "additionalProperties": false,
1350      "properties": {
1351        "align": {
1352          "$ref": "#/definitions/Align"
1353        },
1354        "anchor": {
1355          "$ref": "#/definitions/TitleAnchor",
1356          "description": "The anchor position for placing the title. One of `\"start\"`, `\"middle\"`, or `\"end\"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title."
1357        },
1358        "angle": {
1359          "description": "Angle in degrees of title text.",
1360          "type": "number"
1361        },
1362        "baseline": {
1363          "$ref": "#/definitions/TextBaseline",
1364          "description": "Vertical text baseline for title text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`, or `\"alphabetic\"`."
1365        },
1366        "color": {
1367          "$ref": "#/definitions/Color",
1368          "description": "Text color for title text."
1369        },
1370        "dx": {
1371          "description": "Delta offset for title text x-coordinate.",
1372          "type": "number"
1373        },
1374        "dy": {
1375          "description": "Delta offset for title text y-coordinate.",
1376          "type": "number"
1377        },
1378        "font": {
1379          "description": "Font name for title text.",
1380          "type": "string"
1381        },
1382        "fontSize": {
1383          "description": "Font size in pixels for title text.\n\n__Default value:__ `10`.",
1384          "minimum": 0,
1385          "type": "number"
1386        },
1387        "fontStyle": {
1388          "$ref": "#/definitions/FontStyle",
1389          "description": "Font style for title text."
1390        },
1391        "fontWeight": {
1392          "$ref": "#/definitions/FontWeight",
1393          "description": "Font weight for title text.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
1394        },
1395        "frame": {
1396          "$ref": "#/definitions/TitleFrame",
1397          "description": "The reference frame for the anchor position, one of `\"bounds\"` (to anchor relative to the full bounding box) or `\"group\"` (to anchor relative to the group width or height)."
1398        },
1399        "limit": {
1400          "description": "The maximum allowed length in pixels of legend labels.",
1401          "minimum": 0,
1402          "type": "number"
1403        },
1404        "offset": {
1405          "description": "The orthogonal offset in pixels by which to displace the title from its position along the edge of the chart.",
1406          "type": "number"
1407        },
1408        "orient": {
1409          "$ref": "#/definitions/TitleOrient",
1410          "description": "Default title orientation (`\"top\"`, `\"bottom\"`, `\"left\"`, or `\"right\"`)"
1411        }
1412      },
1413      "type": "object"
1414    },
1415    "Baseline": {
1416      "enum": [
1417        "top",
1418        "middle",
1419        "bottom"
1420      ],
1421      "type": "string"
1422    },
1423    "BinParams": {
1424      "additionalProperties": false,
1425      "description": "Binning properties or boolean flag for determining whether to bin data or not.",
1426      "properties": {
1427        "anchor": {
1428          "description": "A value in the binned domain at which to anchor the bins, shifting the bin boundaries if necessary to ensure that a boundary aligns with the anchor value.\n\n__Default Value:__ the minimum bin extent value",
1429          "type": "number"
1430        },
1431        "base": {
1432          "description": "The number base to use for automatic bin determination (default is base 10).\n\n__Default value:__ `10`",
1433          "type": "number"
1434        },
1435        "binned": {
1436          "description": "When set to true, Vega-Lite treats the input data as already binned.",
1437          "type": "boolean"
1438        },
1439        "divide": {
1440          "description": "Scale factors indicating allowable subdivisions. The default value is [5, 2], which indicates that for base 10 numbers (the default base), the method may consider dividing bin sizes by 5 and/or 2. For example, for an initial step size of 10, the method can check if bin sizes of 2 (= 10/5), 5 (= 10/2), or 1 (= 10/(5*2)) might also satisfy the given constraints.\n\n__Default value:__ `[5, 2]`",
1441          "items": {
1442            "type": "number"
1443          },
1444          "minItems": 1,
1445          "type": "array"
1446        },
1447        "extent": {
1448          "description": "A two-element (`[min, max]`) array indicating the range of desired bin values.",
1449          "items": {
1450            "type": "number"
1451          },
1452          "maxItems": 2,
1453          "minItems": 2,
1454          "type": "array"
1455        },
1456        "maxbins": {
1457          "description": "Maximum number of bins.\n\n__Default value:__ `6` for `row`, `column` and `shape` channels; `10` for other channels",
1458          "minimum": 2,
1459          "type": "number"
1460        },
1461        "minstep": {
1462          "description": "A minimum allowable step size (particularly useful for integer values).",
1463          "type": "number"
1464        },
1465        "nice": {
1466          "description": "If true (the default), attempts to make the bin boundaries use human-friendly boundaries, such as multiples of ten.",
1467          "type": "boolean"
1468        },
1469        "step": {
1470          "description": "An exact step size to use between bins.\n\n__Note:__ If provided, options such as maxbins will be ignored.",
1471          "type": "number"
1472        },
1473        "steps": {
1474          "description": "An array of allowable step sizes to choose from.",
1475          "items": {
1476            "type": "number"
1477          },
1478          "minItems": 1,
1479          "type": "array"
1480        }
1481      },
1482      "type": "object"
1483    },
1484    "BinTransform": {
1485      "additionalProperties": false,
1486      "properties": {
1487        "as": {
1488          "anyOf": [
1489            {
1490              "$ref": "#/definitions/FieldName"
1491            },
1492            {
1493              "items": {
1494                "$ref": "#/definitions/FieldName"
1495              },
1496              "type": "array"
1497            }
1498          ],
1499          "description": "The output fields at which to write the start and end bin values."
1500        },
1501        "bin": {
1502          "anyOf": [
1503            {
1504              "enum": [
1505                true
1506              ],
1507              "type": "boolean"
1508            },
1509            {
1510              "$ref": "#/definitions/BinParams"
1511            }
1512          ],
1513          "description": "An object indicating bin properties, or simply `true` for using default bin parameters."
1514        },
1515        "field": {
1516          "$ref": "#/definitions/FieldName",
1517          "description": "The data field to bin."
1518        }
1519      },
1520      "required": [
1521        "bin",
1522        "field",
1523        "as"
1524      ],
1525      "type": "object"
1526    },
1527    "BindCheckbox": {
1528      "additionalProperties": false,
1529      "properties": {
1530        "debounce": {
1531          "type": "number"
1532        },
1533        "element": {
1534          "$ref": "#/definitions/Element"
1535        },
1536        "input": {
1537          "enum": [
1538            "checkbox"
1539          ],
1540          "type": "string"
1541        },
1542        "name": {
1543          "type": "string"
1544        },
1545        "type": {
1546          "type": "string"
1547        }
1548      },
1549      "required": [
1550        "input"
1551      ],
1552      "type": "object"
1553    },
1554    "BindRadioSelect": {
1555      "additionalProperties": false,
1556      "properties": {
1557        "debounce": {
1558          "type": "number"
1559        },
1560        "element": {
1561          "$ref": "#/definitions/Element"
1562        },
1563        "input": {
1564          "enum": [
1565            "radio",
1566            "select"
1567          ],
1568          "type": "string"
1569        },
1570        "name": {
1571          "type": "string"
1572        },
1573        "options": {
1574          "items": {
1575          },
1576          "type": "array"
1577        },
1578        "type": {
1579          "type": "string"
1580        }
1581      },
1582      "required": [
1583        "input",
1584        "options"
1585      ],
1586      "type": "object"
1587    },
1588    "BindRange": {
1589      "additionalProperties": false,
1590      "properties": {
1591        "debounce": {
1592          "type": "number"
1593        },
1594        "element": {
1595          "$ref": "#/definitions/Element"
1596        },
1597        "input": {
1598          "enum": [
1599            "range"
1600          ],
1601          "type": "string"
1602        },
1603        "max": {
1604          "type": "number"
1605        },
1606        "min": {
1607          "type": "number"
1608        },
1609        "name": {
1610          "type": "string"
1611        },
1612        "step": {
1613          "type": "number"
1614        },
1615        "type": {
1616          "type": "string"
1617        }
1618      },
1619      "required": [
1620        "input"
1621      ],
1622      "type": "object"
1623    },
1624    "Binding": {
1625      "anyOf": [
1626        {
1627          "$ref": "#/definitions/BindCheckbox"
1628        },
1629        {
1630          "$ref": "#/definitions/BindRadioSelect"
1631        },
1632        {
1633          "$ref": "#/definitions/BindRange"
1634        },
1635        {
1636          "$ref": "#/definitions/InputBinding"
1637        }
1638      ]
1639    },
1640    "BoxPlot": {
1641      "enum": [
1642        "boxplot"
1643      ],
1644      "type": "string"
1645    },
1646    "BoxPlotConfig": {
1647      "additionalProperties": false,
1648      "properties": {
1649        "box": {
1650          "anyOf": [
1651            {
1652              "type": "boolean"
1653            },
1654            {
1655              "$ref": "#/definitions/MarkConfig"
1656            }
1657          ]
1658        },
1659        "extent": {
1660          "anyOf": [
1661            {
1662              "enum": [
1663                "min-max"
1664              ],
1665              "type": "string"
1666            },
1667            {
1668              "type": "number"
1669            }
1670          ],
1671          "description": "The extent of the whiskers. Available options include:\n- `\"min-max\"`: min and max are the lower and upper whiskers respectively.\n- A number representing multiple of the interquartile range.  This number will be multiplied by the IQR to determine whisker boundary, which spans from the smallest data to the largest data within the range _[Q1 - k * IQR, Q3 + k * IQR]_ where _Q1_ and _Q3_ are the first and third quartiles while _IQR_ is the interquartile range (_Q3-Q1_).\n\n__Default value:__ `1.5`."
1672        },
1673        "median": {
1674          "anyOf": [
1675            {
1676              "type": "boolean"
1677            },
1678            {
1679              "$ref": "#/definitions/MarkConfig"
1680            }
1681          ]
1682        },
1683        "outliers": {
1684          "anyOf": [
1685            {
1686              "type": "boolean"
1687            },
1688            {
1689              "$ref": "#/definitions/MarkConfig"
1690            }
1691          ]
1692        },
1693        "rule": {
1694          "anyOf": [
1695            {
1696              "type": "boolean"
1697            },
1698            {
1699              "$ref": "#/definitions/MarkConfig"
1700            }
1701          ]
1702        },
1703        "size": {
1704          "description": "Size of the box and median tick of a box plot",
1705          "type": "number"
1706        },
1707        "ticks": {
1708          "anyOf": [
1709            {
1710              "type": "boolean"
1711            },
1712            {
1713              "$ref": "#/definitions/MarkConfig"
1714            }
1715          ]
1716        }
1717      },
1718      "type": "object"
1719    },
1720    "BoxPlotDef": {
1721      "additionalProperties": false,
1722      "properties": {
1723        "box": {
1724          "anyOf": [
1725            {
1726              "type": "boolean"
1727            },
1728            {
1729              "$ref": "#/definitions/MarkConfig"
1730            }
1731          ]
1732        },
1733        "clip": {
1734          "description": "Whether a composite mark be clipped to the enclosing group’s width and height.",
1735          "type": "boolean"
1736        },
1737        "color": {
1738          "$ref": "#/definitions/Color",
1739          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
1740        },
1741        "extent": {
1742          "anyOf": [
1743            {
1744              "enum": [
1745                "min-max"
1746              ],
1747              "type": "string"
1748            },
1749            {
1750              "type": "number"
1751            }
1752          ],
1753          "description": "The extent of the whiskers. Available options include:\n- `\"min-max\"`: min and max are the lower and upper whiskers respectively.\n- A number representing multiple of the interquartile range.  This number will be multiplied by the IQR to determine whisker boundary, which spans from the smallest data to the largest data within the range _[Q1 - k * IQR, Q3 + k * IQR]_ where _Q1_ and _Q3_ are the first and third quartiles while _IQR_ is the interquartile range (_Q3-Q1_).\n\n__Default value:__ `1.5`."
1754        },
1755        "median": {
1756          "anyOf": [
1757            {
1758              "type": "boolean"
1759            },
1760            {
1761              "$ref": "#/definitions/MarkConfig"
1762            }
1763          ]
1764        },
1765        "opacity": {
1766          "description": "The opacity (value between [0,1]) of the mark.",
1767          "type": "number"
1768        },
1769        "orient": {
1770          "$ref": "#/definitions/Orientation",
1771          "description": "Orientation of the box plot.  This is normally automatically determined based on types of fields on x and y channels. However, an explicit `orient` be specified when the orientation is ambiguous.\n\n__Default value:__ `\"vertical\"`."
1772        },
1773        "outliers": {
1774          "anyOf": [
1775            {
1776              "type": "boolean"
1777            },
1778            {
1779              "$ref": "#/definitions/MarkConfig"
1780            }
1781          ]
1782        },
1783        "rule": {
1784          "anyOf": [
1785            {
1786              "type": "boolean"
1787            },
1788            {
1789              "$ref": "#/definitions/MarkConfig"
1790            }
1791          ]
1792        },
1793        "size": {
1794          "description": "Size of the box and median tick of a box plot",
1795          "type": "number"
1796        },
1797        "ticks": {
1798          "anyOf": [
1799            {
1800              "type": "boolean"
1801            },
1802            {
1803              "$ref": "#/definitions/MarkConfig"
1804            }
1805          ]
1806        },
1807        "type": {
1808          "$ref": "#/definitions/BoxPlot",
1809          "description": "The mark type. This could a primitive mark type\n(one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"geoshape\"`, `\"rule\"`, and `\"text\"`)\nor a composite mark type (`\"boxplot\"`, `\"errorband\"`, `\"errorbar\"`)."
1810        }
1811      },
1812      "required": [
1813        "type"
1814      ],
1815      "type": "object"
1816    },
1817    "BrushConfig": {
1818      "additionalProperties": false,
1819      "properties": {
1820        "fill": {
1821          "$ref": "#/definitions/Color",
1822          "description": "The fill color of the interval mark.\n\n__Default value:__ `#333333`"
1823        },
1824        "fillOpacity": {
1825          "description": "The fill opacity of the interval mark (a value between 0 and 1).\n\n__Default value:__ `0.125`",
1826          "type": "number"
1827        },
1828        "stroke": {
1829          "$ref": "#/definitions/Color",
1830          "description": "The stroke color of the interval mark.\n\n__Default value:__ `#ffffff`"
1831        },
1832        "strokeDash": {
1833          "description": "An array of alternating stroke and space lengths,\nfor creating dashed or dotted lines.",
1834          "items": {
1835            "type": "number"
1836          },
1837          "type": "array"
1838        },
1839        "strokeDashOffset": {
1840          "description": "The offset (in pixels) with which to begin drawing the stroke dash array.",
1841          "type": "number"
1842        },
1843        "strokeOpacity": {
1844          "description": "The stroke opacity of the interval mark (a value between 0 and 1).",
1845          "type": "number"
1846        },
1847        "strokeWidth": {
1848          "description": "The stroke width of the interval mark.",
1849          "type": "number"
1850        }
1851      },
1852      "type": "object"
1853    },
1854    "CalculateTransform": {
1855      "additionalProperties": false,
1856      "properties": {
1857        "as": {
1858          "$ref": "#/definitions/FieldName",
1859          "description": "The field for storing the computed formula value."
1860        },
1861        "calculate": {
1862          "description": "A [expression](https://vega.github.io/vega-lite/docs/types.html#expression) string. Use the variable `datum` to refer to the current data object.",
1863          "type": "string"
1864        }
1865      },
1866      "required": [
1867        "calculate",
1868        "as"
1869      ],
1870      "type": "object"
1871    },
1872    "Color": {
1873      "anyOf": [
1874        {
1875          "$ref": "#/definitions/ColorName"
1876        },
1877        {
1878          "$ref": "#/definitions/HexColor"
1879        },
1880        {
1881          "type": "string"
1882        }
1883      ]
1884    },
1885    "ColorName": {
1886      "enum": [
1887        "black",
1888        "silver",
1889        "gray",
1890        "white",
1891        "maroon",
1892        "red",
1893        "purple",
1894        "fuchsia",
1895        "green",
1896        "lime",
1897        "olive",
1898        "yellow",
1899        "navy",
1900        "blue",
1901        "teal",
1902        "aqua",
1903        "orange",
1904        "aliceblue",
1905        "antiquewhite",
1906        "aquamarine",
1907        "azure",
1908        "beige",
1909        "bisque",
1910        "blanchedalmond",
1911        "blueviolet",
1912        "brown",
1913        "burlywood",
1914        "cadetblue",
1915        "chartreuse",
1916        "chocolate",
1917        "coral",
1918        "cornflowerblue",
1919        "cornsilk",
1920        "crimson",
1921        "cyan",
1922        "darkblue",
1923        "darkcyan",
1924        "darkgoldenrod",
1925        "darkgray",
1926        "darkgreen",
1927        "darkgrey",
1928        "darkkhaki",
1929        "darkmagenta",
1930        "darkolivegreen",
1931        "darkorange",
1932        "darkorchid",
1933        "darkred",
1934        "darksalmon",
1935        "darkseagreen",
1936        "darkslateblue",
1937        "darkslategray",
1938        "darkslategrey",
1939        "darkturquoise",
1940        "darkviolet",
1941        "deeppink",
1942        "deepskyblue",
1943        "dimgray",
1944        "dimgrey",
1945        "dodgerblue",
1946        "firebrick",
1947        "floralwhite",
1948        "forestgreen",
1949        "gainsboro",
1950        "ghostwhite",
1951        "gold",
1952        "goldenrod",
1953        "greenyellow",
1954        "grey",
1955        "honeydew",
1956        "hotpink",
1957        "indianred",
1958        "indigo",
1959        "ivory",
1960        "khaki",
1961        "lavender",
1962        "lavenderblush",
1963        "lawngreen",
1964        "lemonchiffon",
1965        "lightblue",
1966        "lightcoral",
1967        "lightcyan",
1968        "lightgoldenrodyellow",
1969        "lightgray",
1970        "lightgreen",
1971        "lightgrey",
1972        "lightpink",
1973        "lightsalmon",
1974        "lightseagreen",
1975        "lightskyblue",
1976        "lightslategray",
1977        "lightslategrey",
1978        "lightsteelblue",
1979        "lightyellow",
1980        "limegreen",
1981        "linen",
1982        "magenta",
1983        "mediumaquamarine",
1984        "mediumblue",
1985        "mediumorchid",
1986        "mediumpurple",
1987        "mediumseagreen",
1988        "mediumslateblue",
1989        "mediumspringgreen",
1990        "mediumturquoise",
1991        "mediumvioletred",
1992        "midnightblue",
1993        "mintcream",
1994        "mistyrose",
1995        "moccasin",
1996        "navajowhite",
1997        "oldlace",
1998        "olivedrab",
1999        "orangered",
2000        "orchid",
2001        "palegoldenrod",
2002        "palegreen",
2003        "paleturquoise",
2004        "palevioletred",
2005        "papayawhip",
2006        "peachpuff",
2007        "peru",
2008        "pink",
2009        "plum",
2010        "powderblue",
2011        "rosybrown",
2012        "royalblue",
2013        "saddlebrown",
2014        "salmon",
2015        "sandybrown",
2016        "seagreen",
2017        "seashell",
2018        "sienna",
2019        "skyblue",
2020        "slateblue",
2021        "slategray",
2022        "slategrey",
2023        "snow",
2024        "springgreen",
2025        "steelblue",
2026        "tan",
2027        "thistle",
2028        "tomato",
2029        "turquoise",
2030        "violet",
2031        "wheat",
2032        "whitesmoke",
2033        "yellowgreen",
2034        "rebeccapurple"
2035      ],
2036      "type": "string"
2037    },
2038    "Encoding": {
2039      "additionalProperties": false,
2040      "properties": {
2041        "color": {
2042          "anyOf": [
2043            {
2044              "$ref": "#/definitions/StringFieldDefWithCondition"
2045            },
2046            {
2047              "$ref": "#/definitions/StringValueDefWithCondition"
2048            }
2049          ],
2050          "description": "Color of the marks – either fill or stroke color based on  the `filled` property of mark definition.\nBy default, `color` represents fill color for `\"area\"`, `\"bar\"`, `\"tick\"`,\n`\"text\"`, `\"trail\"`, `\"circle\"`, and `\"square\"` / stroke color for `\"line\"` and `\"point\"`.\n\n__Default value:__ If undefined, the default color depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `color` property.\n\n_Note:_\n1) For fine-grained control over both fill and stroke colors of the marks, please use the `fill` and `stroke` channels.  If either `fill` or `stroke` channel is specified, `color` channel will be ignored.\n2) See the scale documentation for more information about customizing [color scheme](https://vega.github.io/vega-lite/docs/scale.html#scheme)."
2051        },
2052        "detail": {
2053          "anyOf": [
2054            {
2055              "$ref": "#/definitions/FieldDefWithoutScale"
2056            },
2057            {
2058              "items": {
2059                "$ref": "#/definitions/FieldDefWithoutScale"
2060              },
2061              "type": "array"
2062            }
2063          ],
2064          "description": "Additional levels of detail for grouping data in aggregate views and\nin line, trail, and area marks without mapping data to a specific visual channel."
2065        },
2066        "fill": {
2067          "anyOf": [
2068            {
2069              "$ref": "#/definitions/StringFieldDefWithCondition"
2070            },
2071            {
2072              "$ref": "#/definitions/StringValueDefWithCondition"
2073            }
2074          ],
2075          "description": "Fill color of the marks.\n__Default value:__ If undefined, the default color depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `color` property.\n\n_Note:_ When using `fill` channel, `color ` channel will be ignored. To customize both fill and stroke, please use `fill` and `stroke` channels (not `fill` and `color`)."
2076        },
2077        "fillOpacity": {
2078          "anyOf": [
2079            {
2080              "$ref": "#/definitions/NumericFieldDefWithCondition"
2081            },
2082            {
2083              "$ref": "#/definitions/NumericValueDefWithCondition"
2084            }
2085          ],
2086          "description": "Fill opacity of the marks.\n\n__Default value:__ If undefined, the default opacity depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `fillOpacity` property."
2087        },
2088        "href": {
2089          "anyOf": [
2090            {
2091              "$ref": "#/definitions/TextFieldDefWithCondition"
2092            },
2093            {
2094              "$ref": "#/definitions/TextValueDefWithCondition"
2095            }
2096          ],
2097          "description": "A URL to load upon mouse click."
2098        },
2099        "key": {
2100          "$ref": "#/definitions/FieldDefWithoutScale",
2101          "description": "A data field to use as a unique key for data binding. When a visualization’s data is updated, the key value will be used to match data elements to existing mark instances. Use a key channel to enable object constancy for transitions over dynamic data."
2102        },
2103        "latitude": {
2104          "anyOf": [
2105            {
2106              "$ref": "#/definitions/LatLongFieldDef"
2107            },
2108            {
2109              "$ref": "#/definitions/NumberValueDef"
2110            }
2111          ],
2112          "description": "Latitude position of geographically projected marks."
2113        },
2114        "latitude2": {
2115          "anyOf": [
2116            {
2117              "$ref": "#/definitions/SecondaryFieldDef"
2118            },
2119            {
2120              "$ref": "#/definitions/NumberValueDef"
2121            }
2122          ],
2123          "description": "Latitude-2 position for geographically projected ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`."
2124        },
2125        "longitude": {
2126          "anyOf": [
2127            {
2128              "$ref": "#/definitions/LatLongFieldDef"
2129            },
2130            {
2131              "$ref": "#/definitions/NumberValueDef"
2132            }
2133          ],
2134          "description": "Longitude position of geographically projected marks."
2135        },
2136        "longitude2": {
2137          "anyOf": [
2138            {
2139              "$ref": "#/definitions/SecondaryFieldDef"
2140            },
2141            {
2142              "$ref": "#/definitions/NumberValueDef"
2143            }
2144          ],
2145          "description": "Longitude-2 position for geographically projected ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`."
2146        },
2147        "opacity": {
2148          "anyOf": [
2149            {
2150              "$ref": "#/definitions/NumericFieldDefWithCondition"
2151            },
2152            {
2153              "$ref": "#/definitions/NumericValueDefWithCondition"
2154            }
2155          ],
2156          "description": "Opacity of the marks.\n\n__Default value:__ If undefined, the default opacity depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `opacity` property."
2157        },
2158        "order": {
2159          "anyOf": [
2160            {
2161              "$ref": "#/definitions/OrderFieldDef"
2162            },
2163            {
2164              "items": {
2165                "$ref": "#/definitions/OrderFieldDef"
2166              },
2167              "type": "array"
2168            },
2169            {
2170              "$ref": "#/definitions/NumberValueDef"
2171            }
2172          ],
2173          "description": "Order of the marks.\n- For stacked marks, this `order` channel encodes [stack order](https://vega.github.io/vega-lite/docs/stack.html#order).\n- For line and trail marks, this `order` channel encodes order of data points in the lines. This can be useful for creating [a connected scatterplot](https://vega.github.io/vega-lite/examples/connected_scatterplot.html).  Setting `order` to `{\"value\": null}` makes the line marks use the original order in the data sources.\n- Otherwise, this `order` channel encodes layer order of the marks.\n\n__Note__: In aggregate plots, `order` field should be `aggregate`d to avoid creating additional aggregation grouping."
2174        },
2175        "shape": {
2176          "anyOf": [
2177            {
2178              "$ref": "#/definitions/ShapeFieldDefWithCondition"
2179            },
2180            {
2181              "$ref": "#/definitions/ShapeValueDefWithCondition"
2182            }
2183          ],
2184          "description": "Shape of the mark.\n\n1. For `point` marks the supported values include:\n   - plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n   - the line symbol `\"stroke\"`\n   - centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n   - a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n2. For `geoshape` marks it should be a field definition of the geojson data\n\n__Default value:__ If undefined, the default shape depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#point-config)'s `shape` property. (`\"circle\"` if unset.)"
2185        },
2186        "size": {
2187          "anyOf": [
2188            {
2189              "$ref": "#/definitions/NumericFieldDefWithCondition"
2190            },
2191            {
2192              "$ref": "#/definitions/NumericValueDefWithCondition"
2193            }
2194          ],
2195          "description": "Size of the mark.\n- For `\"point\"`, `\"square\"` and `\"circle\"`, – the symbol size, or pixel area of the mark.\n- For `\"bar\"` and `\"tick\"` – the bar and tick's size.\n- For `\"text\"` – the text's font size.\n- Size is unsupported for `\"line\"`, `\"area\"`, and `\"rect\"`. (Use `\"trail\"` instead of line with varying size)"
2196        },
2197        "stroke": {
2198          "anyOf": [
2199            {
2200              "$ref": "#/definitions/StringFieldDefWithCondition"
2201            },
2202            {
2203              "$ref": "#/definitions/StringValueDefWithCondition"
2204            }
2205          ],
2206          "description": "Stroke color of the marks.\n__Default value:__ If undefined, the default color depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `color` property.\n\n_Note:_ When using `stroke` channel, `color ` channel will be ignored. To customize both stroke and fill, please use `stroke` and `fill` channels (not `stroke` and `color`)."
2207        },
2208        "strokeOpacity": {
2209          "anyOf": [
2210            {
2211              "$ref": "#/definitions/NumericFieldDefWithCondition"
2212            },
2213            {
2214              "$ref": "#/definitions/NumericValueDefWithCondition"
2215            }
2216          ],
2217          "description": "Stroke opacity of the marks.\n\n__Default value:__ If undefined, the default opacity depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `strokeOpacity` property."
2218        },
2219        "strokeWidth": {
2220          "anyOf": [
2221            {
2222              "$ref": "#/definitions/NumericFieldDefWithCondition"
2223            },
2224            {
2225              "$ref": "#/definitions/NumericValueDefWithCondition"
2226            }
2227          ],
2228          "description": "Stroke width of the marks.\n\n__Default value:__ If undefined, the default stroke width depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `strokeWidth` property."
2229        },
2230        "text": {
2231          "anyOf": [
2232            {
2233              "$ref": "#/definitions/TextFieldDefWithCondition"
2234            },
2235            {
2236              "$ref": "#/definitions/TextValueDefWithCondition"
2237            }
2238          ],
2239          "description": "Text of the `text` mark."
2240        },
2241        "tooltip": {
2242          "anyOf": [
2243            {
2244              "$ref": "#/definitions/TextFieldDefWithCondition"
2245            },
2246            {
2247              "$ref": "#/definitions/TextValueDefWithCondition"
2248            },
2249            {
2250              "items": {
2251                "$ref": "#/definitions/TextFieldDef"
2252              },
2253              "type": "array"
2254            },
2255            {
2256              "type": "null"
2257            }
2258          ],
2259          "description": "The tooltip text to show upon mouse hover."
2260        },
2261        "x": {
2262          "anyOf": [
2263            {
2264              "$ref": "#/definitions/PositionFieldDef"
2265            },
2266            {
2267              "$ref": "#/definitions/XValueDef"
2268            }
2269          ],
2270          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
2271        },
2272        "x2": {
2273          "anyOf": [
2274            {
2275              "$ref": "#/definitions/SecondaryFieldDef"
2276            },
2277            {
2278              "$ref": "#/definitions/XValueDef"
2279            }
2280          ],
2281          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
2282        },
2283        "xError": {
2284          "anyOf": [
2285            {
2286              "$ref": "#/definitions/SecondaryFieldDef"
2287            },
2288            {
2289              "$ref": "#/definitions/NumberValueDef"
2290            }
2291          ],
2292          "description": "Error value of x coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
2293        },
2294        "xError2": {
2295          "anyOf": [
2296            {
2297              "$ref": "#/definitions/SecondaryFieldDef"
2298            },
2299            {
2300              "$ref": "#/definitions/NumberValueDef"
2301            }
2302          ],
2303          "description": "Secondary error value of x coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
2304        },
2305        "y": {
2306          "anyOf": [
2307            {
2308              "$ref": "#/definitions/PositionFieldDef"
2309            },
2310            {
2311              "$ref": "#/definitions/YValueDef"
2312            }
2313          ],
2314          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
2315        },
2316        "y2": {
2317          "anyOf": [
2318            {
2319              "$ref": "#/definitions/SecondaryFieldDef"
2320            },
2321            {
2322              "$ref": "#/definitions/YValueDef"
2323            }
2324          ],
2325          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
2326        },
2327        "yError": {
2328          "anyOf": [
2329            {
2330              "$ref": "#/definitions/SecondaryFieldDef"
2331            },
2332            {
2333              "$ref": "#/definitions/NumberValueDef"
2334            }
2335          ],
2336          "description": "Error value of y coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
2337        },
2338        "yError2": {
2339          "anyOf": [
2340            {
2341              "$ref": "#/definitions/SecondaryFieldDef"
2342            },
2343            {
2344              "$ref": "#/definitions/NumberValueDef"
2345            }
2346          ],
2347          "description": "Secondary error value of y coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
2348        }
2349      },
2350      "type": "object"
2351    },
2352    "CompositeMark": {
2353      "anyOf": [
2354        {
2355          "$ref": "#/definitions/BoxPlot"
2356        },
2357        {
2358          "$ref": "#/definitions/ErrorBar"
2359        },
2360        {
2361          "$ref": "#/definitions/ErrorBand"
2362        }
2363      ]
2364    },
2365    "CompositeMarkDef": {
2366      "anyOf": [
2367        {
2368          "$ref": "#/definitions/BoxPlotDef"
2369        },
2370        {
2371          "$ref": "#/definitions/ErrorBarDef"
2372        },
2373        {
2374          "$ref": "#/definitions/ErrorBandDef"
2375        }
2376      ]
2377    },
2378    "CompositionConfig": {
2379      "additionalProperties": false,
2380      "properties": {
2381        "columns": {
2382          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
2383          "type": "number"
2384        },
2385        "spacing": {
2386          "description": "The default spacing in pixels between composed sub-views.\n\n__Default value__: `20`",
2387          "type": "number"
2388        }
2389      },
2390      "type": "object"
2391    },
2392    "ConditionalMarkPropFieldDef": {
2393      "anyOf": [
2394        {
2395          "$ref": "#/definitions/ConditionalPredicate<MarkPropFieldDef>"
2396        },
2397        {
2398          "$ref": "#/definitions/ConditionalSelection<MarkPropFieldDef>"
2399        }
2400      ]
2401    },
2402    "ConditionalMarkPropFieldDef<TypeForShape>": {
2403      "anyOf": [
2404        {
2405          "$ref": "#/definitions/ConditionalPredicate<MarkPropFieldDef<TypeForShape>>"
2406        },
2407        {
2408          "$ref": "#/definitions/ConditionalSelection<MarkPropFieldDef<TypeForShape>>"
2409        }
2410      ]
2411    },
2412    "ConditionalTextFieldDef": {
2413      "anyOf": [
2414        {
2415          "$ref": "#/definitions/ConditionalPredicate<TextFieldDef>"
2416        },
2417        {
2418          "$ref": "#/definitions/ConditionalSelection<TextFieldDef>"
2419        }
2420      ]
2421    },
2422    "ConditionalStringValueDef": {
2423      "anyOf": [
2424        {
2425          "$ref": "#/definitions/ConditionalPredicate<StringValueDef>"
2426        },
2427        {
2428          "$ref": "#/definitions/ConditionalSelection<StringValueDef>"
2429        }
2430      ]
2431    },
2432    "ConditionalValueDef": {
2433      "anyOf": [
2434        {
2435          "$ref": "#/definitions/ConditionalPredicate<ValueDef>"
2436        },
2437        {
2438          "$ref": "#/definitions/ConditionalSelection<ValueDef>"
2439        }
2440      ]
2441    },
2442    "ConditionalNumberValueDef": {
2443      "anyOf": [
2444        {
2445          "$ref": "#/definitions/ConditionalPredicate<NumberValueDef>"
2446        },
2447        {
2448          "$ref": "#/definitions/ConditionalSelection<NumberValueDef>"
2449        }
2450      ]
2451    },
2452    "ConditionalPredicate<MarkPropFieldDef>": {
2453      "additionalProperties": false,
2454      "properties": {
2455        "aggregate": {
2456          "$ref": "#/definitions/Aggregate",
2457          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
2458        },
2459        "bin": {
2460          "anyOf": [
2461            {
2462              "type": "boolean"
2463            },
2464            {
2465              "$ref": "#/definitions/BinParams"
2466            },
2467            {
2468              "type": "null"
2469            }
2470          ],
2471          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
2472        },
2473        "field": {
2474          "$ref": "#/definitions/Field",
2475          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
2476        },
2477        "legend": {
2478          "anyOf": [
2479            {
2480              "$ref": "#/definitions/Legend"
2481            },
2482            {
2483              "type": "null"
2484            }
2485          ],
2486          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
2487        },
2488        "scale": {
2489          "anyOf": [
2490            {
2491              "$ref": "#/definitions/Scale"
2492            },
2493            {
2494              "type": "null"
2495            }
2496          ],
2497          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2498        },
2499        "sort": {
2500          "$ref": "#/definitions/Sort",
2501          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
2502        },
2503        "test": {
2504          "$ref": "#/definitions/LogicalOperand<Predicate>",
2505          "description": "Predicate for triggering the condition"
2506        },
2507        "timeUnit": {
2508          "$ref": "#/definitions/TimeUnit",
2509          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
2510        },
2511        "title": {
2512          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
2513          "type": [
2514            "string",
2515            "null"
2516          ]
2517        },
2518        "type": {
2519          "$ref": "#/definitions/StandardType",
2520          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
2521        }
2522      },
2523      "required": [
2524        "test",
2525        "type"
2526      ],
2527      "type": "object"
2528    },
2529    "ConditionalPredicate<MarkPropFieldDef<TypeForShape>>": {
2530      "additionalProperties": false,
2531      "properties": {
2532        "aggregate": {
2533          "$ref": "#/definitions/Aggregate",
2534          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
2535        },
2536        "bin": {
2537          "anyOf": [
2538            {
2539              "type": "boolean"
2540            },
2541            {
2542              "$ref": "#/definitions/BinParams"
2543            },
2544            {
2545              "type": "null"
2546            }
2547          ],
2548          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
2549        },
2550        "field": {
2551          "$ref": "#/definitions/Field",
2552          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
2553        },
2554        "legend": {
2555          "anyOf": [
2556            {
2557              "$ref": "#/definitions/Legend"
2558            },
2559            {
2560              "type": "null"
2561            }
2562          ],
2563          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
2564        },
2565        "scale": {
2566          "anyOf": [
2567            {
2568              "$ref": "#/definitions/Scale"
2569            },
2570            {
2571              "type": "null"
2572            }
2573          ],
2574          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2575        },
2576        "sort": {
2577          "$ref": "#/definitions/Sort",
2578          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
2579        },
2580        "test": {
2581          "$ref": "#/definitions/LogicalOperand<Predicate>",
2582          "description": "Predicate for triggering the condition"
2583        },
2584        "timeUnit": {
2585          "$ref": "#/definitions/TimeUnit",
2586          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
2587        },
2588        "title": {
2589          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
2590          "type": [
2591            "string",
2592            "null"
2593          ]
2594        },
2595        "type": {
2596          "$ref": "#/definitions/TypeForShape",
2597          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
2598        }
2599      },
2600      "required": [
2601        "test",
2602        "type"
2603      ],
2604      "type": "object"
2605    },
2606    "ConditionalPredicate<TextFieldDef>": {
2607      "additionalProperties": false,
2608      "properties": {
2609        "aggregate": {
2610          "$ref": "#/definitions/Aggregate",
2611          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
2612        },
2613        "bin": {
2614          "anyOf": [
2615            {
2616              "type": "boolean"
2617            },
2618            {
2619              "$ref": "#/definitions/BinParams"
2620            },
2621            {
2622              "enum": [
2623                "binned"
2624              ],
2625              "type": "string"
2626            },
2627            {
2628              "type": "null"
2629            }
2630          ],
2631          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
2632        },
2633        "field": {
2634          "$ref": "#/definitions/Field",
2635          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
2636        },
2637        "format": {
2638          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
2639          "type": "string"
2640        },
2641        "formatType": {
2642          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
2643          "enum": [
2644            "number",
2645            "time"
2646          ],
2647          "type": "string"
2648        },
2649        "test": {
2650          "$ref": "#/definitions/LogicalOperand<Predicate>",
2651          "description": "Predicate for triggering the condition"
2652        },
2653        "timeUnit": {
2654          "$ref": "#/definitions/TimeUnit",
2655          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
2656        },
2657        "title": {
2658          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
2659          "type": [
2660            "string",
2661            "null"
2662          ]
2663        },
2664        "type": {
2665          "$ref": "#/definitions/StandardType",
2666          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
2667        }
2668      },
2669      "required": [
2670        "test",
2671        "type"
2672      ],
2673      "type": "object"
2674    },
2675    "ConditionalPredicate<StringValueDef>": {
2676      "additionalProperties": false,
2677      "properties": {
2678        "test": {
2679          "$ref": "#/definitions/LogicalOperand<Predicate>",
2680          "description": "Predicate for triggering the condition"
2681        },
2682        "value": {
2683          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
2684          "type": [
2685            "string",
2686            "null"
2687          ]
2688        }
2689      },
2690      "required": [
2691        "test",
2692        "value"
2693      ],
2694      "type": "object"
2695    },
2696    "ConditionalPredicate<ValueDef>": {
2697      "additionalProperties": false,
2698      "properties": {
2699        "test": {
2700          "$ref": "#/definitions/LogicalOperand<Predicate>",
2701          "description": "Predicate for triggering the condition"
2702        },
2703        "value": {
2704          "$ref": "#/definitions/Value",
2705          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity)."
2706        }
2707      },
2708      "required": [
2709        "test",
2710        "value"
2711      ],
2712      "type": "object"
2713    },
2714    "ConditionalPredicate<NumberValueDef>": {
2715      "additionalProperties": false,
2716      "properties": {
2717        "test": {
2718          "$ref": "#/definitions/LogicalOperand<Predicate>",
2719          "description": "Predicate for triggering the condition"
2720        },
2721        "value": {
2722          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
2723          "type": "number"
2724        }
2725      },
2726      "required": [
2727        "test",
2728        "value"
2729      ],
2730      "type": "object"
2731    },
2732    "ConditionalSelection<MarkPropFieldDef>": {
2733      "additionalProperties": false,
2734      "properties": {
2735        "aggregate": {
2736          "$ref": "#/definitions/Aggregate",
2737          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
2738        },
2739        "bin": {
2740          "anyOf": [
2741            {
2742              "type": "boolean"
2743            },
2744            {
2745              "$ref": "#/definitions/BinParams"
2746            },
2747            {
2748              "type": "null"
2749            }
2750          ],
2751          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
2752        },
2753        "field": {
2754          "$ref": "#/definitions/Field",
2755          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
2756        },
2757        "legend": {
2758          "anyOf": [
2759            {
2760              "$ref": "#/definitions/Legend"
2761            },
2762            {
2763              "type": "null"
2764            }
2765          ],
2766          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
2767        },
2768        "scale": {
2769          "anyOf": [
2770            {
2771              "$ref": "#/definitions/Scale"
2772            },
2773            {
2774              "type": "null"
2775            }
2776          ],
2777          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2778        },
2779        "selection": {
2780          "$ref": "#/definitions/SelectionOperand",
2781          "description": "A [selection name](https://vega.github.io/vega-lite/docs/selection.html), or a series of [composed selections](https://vega.github.io/vega-lite/docs/selection.html#compose)."
2782        },
2783        "sort": {
2784          "$ref": "#/definitions/Sort",
2785          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
2786        },
2787        "timeUnit": {
2788          "$ref": "#/definitions/TimeUnit",
2789          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
2790        },
2791        "title": {
2792          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
2793          "type": [
2794            "string",
2795            "null"
2796          ]
2797        },
2798        "type": {
2799          "$ref": "#/definitions/StandardType",
2800          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
2801        }
2802      },
2803      "required": [
2804        "selection",
2805        "type"
2806      ],
2807      "type": "object"
2808    },
2809    "ConditionalSelection<MarkPropFieldDef<TypeForShape>>": {
2810      "additionalProperties": false,
2811      "properties": {
2812        "aggregate": {
2813          "$ref": "#/definitions/Aggregate",
2814          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
2815        },
2816        "bin": {
2817          "anyOf": [
2818            {
2819              "type": "boolean"
2820            },
2821            {
2822              "$ref": "#/definitions/BinParams"
2823            },
2824            {
2825              "type": "null"
2826            }
2827          ],
2828          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
2829        },
2830        "field": {
2831          "$ref": "#/definitions/Field",
2832          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
2833        },
2834        "legend": {
2835          "anyOf": [
2836            {
2837              "$ref": "#/definitions/Legend"
2838            },
2839            {
2840              "type": "null"
2841            }
2842          ],
2843          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
2844        },
2845        "scale": {
2846          "anyOf": [
2847            {
2848              "$ref": "#/definitions/Scale"
2849            },
2850            {
2851              "type": "null"
2852            }
2853          ],
2854          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2855        },
2856        "selection": {
2857          "$ref": "#/definitions/SelectionOperand",
2858          "description": "A [selection name](https://vega.github.io/vega-lite/docs/selection.html), or a series of [composed selections](https://vega.github.io/vega-lite/docs/selection.html#compose)."
2859        },
2860        "sort": {
2861          "$ref": "#/definitions/Sort",
2862          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
2863        },
2864        "timeUnit": {
2865          "$ref": "#/definitions/TimeUnit",
2866          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
2867        },
2868        "title": {
2869          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
2870          "type": [
2871            "string",
2872            "null"
2873          ]
2874        },
2875        "type": {
2876          "$ref": "#/definitions/TypeForShape",
2877          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
2878        }
2879      },
2880      "required": [
2881        "selection",
2882        "type"
2883      ],
2884      "type": "object"
2885    },
2886    "ConditionalSelection<TextFieldDef>": {
2887      "additionalProperties": false,
2888      "properties": {
2889        "aggregate": {
2890          "$ref": "#/definitions/Aggregate",
2891          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
2892        },
2893        "bin": {
2894          "anyOf": [
2895            {
2896              "type": "boolean"
2897            },
2898            {
2899              "$ref": "#/definitions/BinParams"
2900            },
2901            {
2902              "enum": [
2903                "binned"
2904              ],
2905              "type": "string"
2906            },
2907            {
2908              "type": "null"
2909            }
2910          ],
2911          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
2912        },
2913        "field": {
2914          "$ref": "#/definitions/Field",
2915          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
2916        },
2917        "format": {
2918          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
2919          "type": "string"
2920        },
2921        "formatType": {
2922          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
2923          "enum": [
2924            "number",
2925            "time"
2926          ],
2927          "type": "string"
2928        },
2929        "selection": {
2930          "$ref": "#/definitions/SelectionOperand",
2931          "description": "A [selection name](https://vega.github.io/vega-lite/docs/selection.html), or a series of [composed selections](https://vega.github.io/vega-lite/docs/selection.html#compose)."
2932        },
2933        "timeUnit": {
2934          "$ref": "#/definitions/TimeUnit",
2935          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
2936        },
2937        "title": {
2938          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
2939          "type": [
2940            "string",
2941            "null"
2942          ]
2943        },
2944        "type": {
2945          "$ref": "#/definitions/StandardType",
2946          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
2947        }
2948      },
2949      "required": [
2950        "selection",
2951        "type"
2952      ],
2953      "type": "object"
2954    },
2955    "ConditionalSelection<StringValueDef>": {
2956      "additionalProperties": false,
2957      "properties": {
2958        "selection": {
2959          "$ref": "#/definitions/SelectionOperand",
2960          "description": "A [selection name](https://vega.github.io/vega-lite/docs/selection.html), or a series of [composed selections](https://vega.github.io/vega-lite/docs/selection.html#compose)."
2961        },
2962        "value": {
2963          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
2964          "type": [
2965            "string",
2966            "null"
2967          ]
2968        }
2969      },
2970      "required": [
2971        "selection",
2972        "value"
2973      ],
2974      "type": "object"
2975    },
2976    "ConditionalSelection<ValueDef>": {
2977      "additionalProperties": false,
2978      "properties": {
2979        "selection": {
2980          "$ref": "#/definitions/SelectionOperand",
2981          "description": "A [selection name](https://vega.github.io/vega-lite/docs/selection.html), or a series of [composed selections](https://vega.github.io/vega-lite/docs/selection.html#compose)."
2982        },
2983        "value": {
2984          "$ref": "#/definitions/Value",
2985          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity)."
2986        }
2987      },
2988      "required": [
2989        "selection",
2990        "value"
2991      ],
2992      "type": "object"
2993    },
2994    "ConditionalSelection<NumberValueDef>": {
2995      "additionalProperties": false,
2996      "properties": {
2997        "selection": {
2998          "$ref": "#/definitions/SelectionOperand",
2999          "description": "A [selection name](https://vega.github.io/vega-lite/docs/selection.html), or a series of [composed selections](https://vega.github.io/vega-lite/docs/selection.html#compose)."
3000        },
3001        "value": {
3002          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
3003          "type": "number"
3004        }
3005      },
3006      "required": [
3007        "selection",
3008        "value"
3009      ],
3010      "type": "object"
3011    },
3012    "Config": {
3013      "additionalProperties": false,
3014      "properties": {
3015        "area": {
3016          "$ref": "#/definitions/AreaConfig",
3017          "description": "Area-Specific Config"
3018        },
3019        "autosize": {
3020          "anyOf": [
3021            {
3022              "$ref": "#/definitions/AutosizeType"
3023            },
3024            {
3025              "$ref": "#/definitions/AutoSizeParams"
3026            }
3027          ],
3028          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
3029        },
3030        "axis": {
3031          "$ref": "#/definitions/AxisConfig",
3032          "description": "Axis configuration, which determines default properties for all `x` and `y` [axes](https://vega.github.io/vega-lite/docs/axis.html). For a full list of axis configuration options, please see the [corresponding section of the axis documentation](https://vega.github.io/vega-lite/docs/axis.html#config)."
3033        },
3034        "axisBand": {
3035          "$ref": "#/definitions/AxisConfig",
3036          "description": "Specific axis config for axes with \"band\" scales."
3037        },
3038        "axisBottom": {
3039          "$ref": "#/definitions/AxisConfig",
3040          "description": "Specific axis config for x-axis along the bottom edge of the chart."
3041        },
3042        "axisLeft": {
3043          "$ref": "#/definitions/AxisConfig",
3044          "description": "Specific axis config for y-axis along the left edge of the chart."
3045        },
3046        "axisRight": {
3047          "$ref": "#/definitions/AxisConfig",
3048          "description": "Specific axis config for y-axis along the right edge of the chart."
3049        },
3050        "axisTop": {
3051          "$ref": "#/definitions/AxisConfig",
3052          "description": "Specific axis config for x-axis along the top edge of the chart."
3053        },
3054        "axisX": {
3055          "$ref": "#/definitions/AxisConfig",
3056          "description": "X-axis specific config."
3057        },
3058        "axisY": {
3059          "$ref": "#/definitions/AxisConfig",
3060          "description": "Y-axis specific config."
3061        },
3062        "background": {
3063          "description": "CSS color property to use as the background of the whole Vega-Lite view\n\n__Default value:__ none (transparent)",
3064          "type": "string"
3065        },
3066        "bar": {
3067          "$ref": "#/definitions/RectConfig",
3068          "description": "Bar-Specific Config"
3069        },
3070        "boxplot": {
3071          "$ref": "#/definitions/BoxPlotConfig",
3072          "description": "Box Config"
3073        },
3074        "circle": {
3075          "$ref": "#/definitions/MarkConfig",
3076          "description": "Circle-Specific Config"
3077        },
3078        "concat": {
3079          "$ref": "#/definitions/CompositionConfig",
3080          "description": "Default configuration for all concatenation view composition operators (`concat`, `hconcat`, and `vconcat`)"
3081        },
3082        "countTitle": {
3083          "description": "Default axis and legend title for count fields.\n\n__Default value:__ `'Count of Records`.",
3084          "type": "string"
3085        },
3086        "errorband": {
3087          "$ref": "#/definitions/ErrorBandConfig",
3088          "description": "ErrorBand Config"
3089        },
3090        "errorbar": {
3091          "$ref": "#/definitions/ErrorBarConfig",
3092          "description": "ErrorBar Config"
3093        },
3094        "facet": {
3095          "$ref": "#/definitions/CompositionConfig",
3096          "description": "Default configuration for the `facet` view composition operator"
3097        },
3098        "fieldTitle": {
3099          "description": "Defines how Vega-Lite generates title for fields.  There are three possible styles:\n- `\"verbal\"` (Default) - displays function in a verbal style (e.g., \"Sum of field\", \"Year-month of date\", \"field (binned)\").\n- `\"function\"` - displays function using parentheses and capitalized texts (e.g., \"SUM(field)\", \"YEARMONTH(date)\", \"BIN(field)\").\n- `\"plain\"` - displays only the field name without functions (e.g., \"field\", \"date\", \"field\").",
3100          "enum": [
3101            "verbal",
3102            "functional",
3103            "plain"
3104          ],
3105          "type": "string"
3106        },
3107        "geoshape": {
3108          "$ref": "#/definitions/MarkConfig",
3109          "description": "Geoshape-Specific Config"
3110        },
3111        "header": {
3112          "$ref": "#/definitions/HeaderConfig",
3113          "description": "Header configuration, which determines default properties for all [headers](https://vega.github.io/vega-lite/docs/header.html).\n\nFor a full list of header configuration options, please see the [corresponding section of in the header documentation](https://vega.github.io/vega-lite/docs/header.html#config)."
3114        },
3115        "headerColumn": {
3116          "$ref": "#/definitions/HeaderConfig",
3117          "description": "Header configuration, which determines default properties for column [headers](https://vega.github.io/vega-lite/docs/header.html).\n\nFor a full list of header configuration options, please see the [corresponding section of in the header documentation](https://vega.github.io/vega-lite/docs/header.html#config)."
3118        },
3119        "headerFacet": {
3120          "$ref": "#/definitions/HeaderConfig",
3121          "description": "Header configuration, which determines default properties for non-row/column facet [headers](https://vega.github.io/vega-lite/docs/header.html).\n\nFor a full list of header configuration options, please see the [corresponding section of in the header documentation](https://vega.github.io/vega-lite/docs/header.html#config)."
3122        },
3123        "headerRow": {
3124          "$ref": "#/definitions/HeaderConfig",
3125          "description": "Header configuration, which determines default properties for row [headers](https://vega.github.io/vega-lite/docs/header.html).\n\nFor a full list of header configuration options, please see the [corresponding section of in the header documentation](https://vega.github.io/vega-lite/docs/header.html#config)."
3126        },
3127        "invalidValues": {
3128          "description": "Defines how Vega-Lite should handle invalid values (`null` and `NaN`).\n- If set to `\"filter\"` (default), all data items with null values will be skipped (for line, trail, and area marks) or filtered (for other marks).\n- If `null`, all data items are included. In this case, invalid values will be interpreted as zeroes.",
3129          "enum": [
3130            "filter",
3131            null
3132          ],
3133          "type": [
3134            "string",
3135            "null"
3136          ]
3137        },
3138        "legend": {
3139          "$ref": "#/definitions/LegendConfig",
3140          "description": "Legend configuration, which determines default properties for all [legends](https://vega.github.io/vega-lite/docs/legend.html). For a full list of legend configuration options, please see the [corresponding section of in the legend documentation](https://vega.github.io/vega-lite/docs/legend.html#config)."
3141        },
3142        "line": {
3143          "$ref": "#/definitions/LineConfig",
3144          "description": "Line-Specific Config"
3145        },
3146        "mark": {
3147          "$ref": "#/definitions/MarkConfig",
3148          "description": "Mark Config"
3149        },
3150        "numberFormat": {
3151          "description": "D3 Number format for guide labels and text marks. For example \"s\" for SI units. Use [D3's number format pattern](https://github.com/d3/d3-format#locale_format).",
3152          "type": "string"
3153        },
3154        "padding": {
3155          "$ref": "#/definitions/Padding",
3156          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
3157        },
3158        "point": {
3159          "$ref": "#/definitions/MarkConfig",
3160          "description": "Point-Specific Config"
3161        },
3162        "projection": {
3163          "$ref": "#/definitions/ProjectionConfig",
3164          "description": "Projection configuration, which determines default properties for all [projections](https://vega.github.io/vega-lite/docs/projection.html). For a full list of projection configuration options, please see the [corresponding section of the projection documentation](https://vega.github.io/vega-lite/docs/projection.html#config)."
3165        },
3166        "range": {
3167          "$ref": "#/definitions/RangeConfig",
3168          "description": "An object hash that defines default range arrays or schemes for using with scales.\nFor a full list of scale range configuration options, please see the [corresponding section of the scale documentation](https://vega.github.io/vega-lite/docs/scale.html#config)."
3169        },
3170        "rect": {
3171          "$ref": "#/definitions/RectConfig",
3172          "description": "Rect-Specific Config"
3173        },
3174        "repeat": {
3175          "$ref": "#/definitions/CompositionConfig",
3176          "description": "Default configuration for the `repeat` view composition operator"
3177        },
3178        "rule": {
3179          "$ref": "#/definitions/MarkConfig",
3180          "description": "Rule-Specific Config"
3181        },
3182        "scale": {
3183          "$ref": "#/definitions/ScaleConfig",
3184          "description": "Scale configuration determines default properties for all [scales](https://vega.github.io/vega-lite/docs/scale.html). For a full list of scale configuration options, please see the [corresponding section of the scale documentation](https://vega.github.io/vega-lite/docs/scale.html#config)."
3185        },
3186        "selection": {
3187          "$ref": "#/definitions/SelectionConfig",
3188          "description": "An object hash for defining default properties for each type of selections."
3189        },
3190        "square": {
3191          "$ref": "#/definitions/MarkConfig",
3192          "description": "Square-Specific Config"
3193        },
3194        "stack": {
3195          "$ref": "#/definitions/StackOffset",
3196          "description": "Default stack offset for stackable mark."
3197        },
3198        "style": {
3199          "$ref": "#/definitions/StyleConfigIndex",
3200          "description": "An object hash that defines key-value mappings to determine default properties for marks with a given [style](https://vega.github.io/vega-lite/docs/mark.html#mark-def).  The keys represent styles names; the values have to be valid [mark configuration objects](https://vega.github.io/vega-lite/docs/mark.html#config)."
3201        },
3202        "text": {
3203          "$ref": "#/definitions/TextConfig",
3204          "description": "Text-Specific Config"
3205        },
3206        "tick": {
3207          "$ref": "#/definitions/TickConfig",
3208          "description": "Tick-Specific Config"
3209        },
3210        "timeFormat": {
3211          "description": "Default time format for raw time values (without time units) in text marks, legend labels and header labels.\n\n__Default value:__ `\"%b %d, %Y\"`\n__Note:__ Axes automatically determine format each label automatically so this config would not affect axes.",
3212          "type": "string"
3213        },
3214        "title": {
3215          "$ref": "#/definitions/TitleConfig",
3216          "description": "Title configuration, which determines default properties for all [titles](https://vega.github.io/vega-lite/docs/title.html). For a full list of title configuration options, please see the [corresponding section of the title documentation](https://vega.github.io/vega-lite/docs/title.html#config)."
3217        },
3218        "trail": {
3219          "$ref": "#/definitions/LineConfig",
3220          "description": "Trail-Specific Config"
3221        },
3222        "view": {
3223          "$ref": "#/definitions/ViewConfig",
3224          "description": "Default properties for [single view plots](https://vega.github.io/vega-lite/docs/spec.html#single)."
3225        }
3226      },
3227      "type": "object"
3228    },
3229    "CsvDataFormat": {
3230      "additionalProperties": false,
3231      "properties": {
3232        "parse": {
3233          "anyOf": [
3234            {
3235              "$ref": "#/definitions/Parse"
3236            },
3237            {
3238              "type": "null"
3239            }
3240          ],
3241          "description": "If set to `null`, disable type inference based on the spec and only use type inference based on the data.\nAlternatively, a parsing directive object can be provided for explicit data types. Each property of the object corresponds to a field name, and the value to the desired data type (one of `\"number\"`, `\"boolean\"`, `\"date\"`, or null (do not parse the field)).\nFor example, `\"parse\": {\"modified_on\": \"date\"}` parses the `modified_on` field in each input record a Date value.\n\nFor `\"date\"`, we parse data based using Javascript's [`Date.parse()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\nFor Specific date formats can be provided (e.g., `{foo: \"date:'%m%d%Y'\"}`), using the [d3-time-format syntax](https://github.com/d3/d3-time-format#locale_format). UTC date format parsing is supported similarly (e.g., `{foo: \"utc:'%m%d%Y'\"}`). See more about [UTC time](https://vega.github.io/vega-lite/docs/timeunit.html#utc)"
3242        },
3243        "type": {
3244          "description": "Type of input data: `\"json\"`, `\"csv\"`, `\"tsv\"`, `\"dsv\"`.\n\n__Default value:__  The default format type is determined by the extension of the file URL.\nIf no extension is detected, `\"json\"` will be used by default.",
3245          "enum": [
3246            "csv",
3247            "tsv"
3248          ],
3249          "type": "string"
3250        }
3251      },
3252      "type": "object"
3253    },
3254    "Cursor": {
3255      "enum": [
3256        "auto",
3257        "default",
3258        "none",
3259        "context-menu",
3260        "help",
3261        "pointer",
3262        "progress",
3263        "wait",
3264        "cell",
3265        "crosshair",
3266        "text",
3267        "vertical-text",
3268        "alias",
3269        "copy",
3270        "move",
3271        "no-drop",
3272        "not-allowed",
3273        "e-resize",
3274        "n-resize",
3275        "ne-resize",
3276        "nw-resize",
3277        "s-resize",
3278        "se-resize",
3279        "sw-resize",
3280        "w-resize",
3281        "ew-resize",
3282        "ns-resize",
3283        "nesw-resize",
3284        "nwse-resize",
3285        "col-resize",
3286        "row-resize",
3287        "all-scroll",
3288        "zoom-in",
3289        "zoom-out",
3290        "grab",
3291        "grabbing"
3292      ],
3293      "type": "string"
3294    },
3295    "Data": {
3296      "anyOf": [
3297        {
3298          "$ref": "#/definitions/DataSource"
3299        },
3300        {
3301          "$ref": "#/definitions/Generator"
3302        }
3303      ]
3304    },
3305    "DataFormat": {
3306      "anyOf": [
3307        {
3308          "$ref": "#/definitions/CsvDataFormat"
3309        },
3310        {
3311          "$ref": "#/definitions/DsvDataFormat"
3312        },
3313        {
3314          "$ref": "#/definitions/JsonDataFormat"
3315        },
3316        {
3317          "$ref": "#/definitions/TopoDataFormat"
3318        }
3319      ]
3320    },
3321    "DataSource": {
3322      "anyOf": [
3323        {
3324          "$ref": "#/definitions/UrlData"
3325        },
3326        {
3327          "$ref": "#/definitions/InlineData"
3328        },
3329        {
3330          "$ref": "#/definitions/NamedData"
3331        }
3332      ]
3333    },
3334    "Datasets": {
3335      "$ref": "#/definitions/Dict<InlineDataset>"
3336    },
3337    "DateTime": {
3338      "additionalProperties": false,
3339      "description": "Object for defining datetime in Vega-Lite Filter.\nIf both month and quarter are provided, month has higher precedence.\n`day` cannot be combined with other date.\nWe accept string for month and day names.",
3340      "properties": {
3341        "date": {
3342          "description": "Integer value representing the date from 1-31.",
3343          "maximum": 31,
3344          "minimum": 1,
3345          "type": "number"
3346        },
3347        "day": {
3348          "anyOf": [
3349            {
3350              "$ref": "#/definitions/Day"
3351            },
3352            {
3353              "type": "string"
3354            }
3355          ],
3356          "description": "Value representing the day of a week.  This can be one of: (1) integer value -- `1` represents Monday; (2) case-insensitive day name (e.g., `\"Monday\"`);  (3) case-insensitive, 3-character short day name (e.g., `\"Mon\"`).   <br/> **Warning:** A DateTime definition object with `day`** should not be combined with `year`, `quarter`, `month`, or `date`."
3357        },
3358        "hours": {
3359          "description": "Integer value representing the hour of a day from 0-23.",
3360          "maximum": 23,
3361          "minimum": 0,
3362          "type": "number"
3363        },
3364        "milliseconds": {
3365          "description": "Integer value representing the millisecond segment of time.",
3366          "maximum": 999,
3367          "minimum": 0,
3368          "type": "number"
3369        },
3370        "minutes": {
3371          "description": "Integer value representing the minute segment of time from 0-59.",
3372          "maximum": 59,
3373          "minimum": 0,
3374          "type": "number"
3375        },
3376        "month": {
3377          "anyOf": [
3378            {
3379              "$ref": "#/definitions/Month"
3380            },
3381            {
3382              "type": "string"
3383            }
3384          ],
3385          "description": "One of: (1) integer value representing the month from `1`-`12`. `1` represents January;  (2) case-insensitive month name (e.g., `\"January\"`);  (3) case-insensitive, 3-character short month name (e.g., `\"Jan\"`)."
3386        },
3387        "quarter": {
3388          "description": "Integer value representing the quarter of the year (from 1-4).",
3389          "maximum": 4,
3390          "minimum": 1,
3391          "type": "number"
3392        },
3393        "seconds": {
3394          "description": "Integer value representing the second segment (0-59) of a time value",
3395          "maximum": 59,
3396          "minimum": 0,
3397          "type": "number"
3398        },
3399        "utc": {
3400          "description": "A boolean flag indicating if date time is in utc time. If false, the date time is in local time",
3401          "type": "boolean"
3402        },
3403        "year": {
3404          "description": "Integer value representing the year.",
3405          "type": "number"
3406        }
3407      },
3408      "type": "object"
3409    },
3410    "Day": {
3411      "maximum": 7,
3412      "minimum": 1,
3413      "type": "number"
3414    },
3415    "Dict<InlineDataset>": {
3416      "additionalProperties": {
3417        "$ref": "#/definitions/InlineDataset"
3418      },
3419      "type": "object"
3420    },
3421    "Dir": {
3422      "enum": [
3423        "ltr",
3424        "rtl"
3425      ],
3426      "type": "string"
3427    },
3428    "DsvDataFormat": {
3429      "additionalProperties": false,
3430      "properties": {
3431        "delimiter": {
3432          "description": "The delimiter between records. The delimiter must be a single character (i.e., a single 16-bit code unit); so, ASCII delimiters are fine, but emoji delimiters are not.",
3433          "maxLength": 1,
3434          "minLength": 1,
3435          "type": "string"
3436        },
3437        "parse": {
3438          "anyOf": [
3439            {
3440              "$ref": "#/definitions/Parse"
3441            },
3442            {
3443              "type": "null"
3444            }
3445          ],
3446          "description": "If set to `null`, disable type inference based on the spec and only use type inference based on the data.\nAlternatively, a parsing directive object can be provided for explicit data types. Each property of the object corresponds to a field name, and the value to the desired data type (one of `\"number\"`, `\"boolean\"`, `\"date\"`, or null (do not parse the field)).\nFor example, `\"parse\": {\"modified_on\": \"date\"}` parses the `modified_on` field in each input record a Date value.\n\nFor `\"date\"`, we parse data based using Javascript's [`Date.parse()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\nFor Specific date formats can be provided (e.g., `{foo: \"date:'%m%d%Y'\"}`), using the [d3-time-format syntax](https://github.com/d3/d3-time-format#locale_format). UTC date format parsing is supported similarly (e.g., `{foo: \"utc:'%m%d%Y'\"}`). See more about [UTC time](https://vega.github.io/vega-lite/docs/timeunit.html#utc)"
3447        },
3448        "type": {
3449          "description": "Type of input data: `\"json\"`, `\"csv\"`, `\"tsv\"`, `\"dsv\"`.\n\n__Default value:__  The default format type is determined by the extension of the file URL.\nIf no extension is detected, `\"json\"` will be used by default.",
3450          "enum": [
3451            "dsv"
3452          ],
3453          "type": "string"
3454        }
3455      },
3456      "required": [
3457        "delimiter"
3458      ],
3459      "type": "object"
3460    },
3461    "Element": {
3462      "type": "string"
3463    },
3464    "EncodingSortField": {
3465      "additionalProperties": false,
3466      "description": "A sort definition for sorting a discrete scale in an encoding field definition.",
3467      "properties": {
3468        "field": {
3469          "$ref": "#/definitions/Field",
3470          "description": "The data [field](https://vega.github.io/vega-lite/docs/field.html) to sort by.\n\n__Default value:__ If unspecified, defaults to the field specified in the outer data reference."
3471        },
3472        "op": {
3473          "$ref": "#/definitions/AggregateOp",
3474          "description": "An [aggregate operation](https://vega.github.io/vega-lite/docs/aggregate.html#ops) to perform on the field prior to sorting (e.g., `\"count\"`, `\"mean\"` and `\"median\"`).\nAn aggregation is required when there are multiple values of the sort field for each encoded data field.\nThe input data objects will be aggregated, grouped by the encoded data field.\n\nFor a full list of operations, please see the documentation for [aggregate](https://vega.github.io/vega-lite/docs/aggregate.html#ops).\n\n__Default value:__ `\"sum\"` for stacked plots. Otherwise, `\"mean\"`."
3475        },
3476        "order": {
3477          "anyOf": [
3478            {
3479              "$ref": "#/definitions/SortOrder"
3480            },
3481            {
3482              "type": "null"
3483            }
3484          ],
3485          "description": "The sort order. One of `\"ascending\"` (default), `\"descending\"`, or `null` (no not sort)."
3486        }
3487      },
3488      "type": "object"
3489    },
3490    "ErrorBand": {
3491      "enum": [
3492        "errorband"
3493      ],
3494      "type": "string"
3495    },
3496    "ErrorBandConfig": {
3497      "additionalProperties": false,
3498      "properties": {
3499        "band": {
3500          "anyOf": [
3501            {
3502              "type": "boolean"
3503            },
3504            {
3505              "$ref": "#/definitions/MarkConfig"
3506            }
3507          ]
3508        },
3509        "borders": {
3510          "anyOf": [
3511            {
3512              "type": "boolean"
3513            },
3514            {
3515              "$ref": "#/definitions/MarkConfig"
3516            }
3517          ]
3518        },
3519        "extent": {
3520          "$ref": "#/definitions/ErrorBarExtent",
3521          "description": "The extent of the band. Available options include:\n- `\"ci\"`: Extend the band to the confidence interval of the mean.\n- `\"stderr\"`: The size of band are set to the value of standard error, extending from the mean.\n- `\"stdev\"`: The size of band are set to the value of standard deviation, extending from the mean.\n- `\"iqr\"`: Extend the band to the q1 and q3.\n\n__Default value:__ `\"stderr\"`."
3522        },
3523        "interpolate": {
3524          "$ref": "#/definitions/Interpolate",
3525          "description": "The line interpolation method for the error band. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines. The y-value changes at the midpoint of each pair of adjacent x-values.\n- `\"step-before\"`: a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines. The y-value changes before the x-value.\n- `\"step-after\"`: a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines. The y-value changes after the x-value.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
3526        },
3527        "tension": {
3528          "description": "The tension parameter for the interpolation type of the error band.",
3529          "maximum": 1,
3530          "minimum": 0,
3531          "type": "number"
3532        }
3533      },
3534      "type": "object"
3535    },
3536    "ErrorBandDef": {
3537      "additionalProperties": false,
3538      "properties": {
3539        "band": {
3540          "anyOf": [
3541            {
3542              "type": "boolean"
3543            },
3544            {
3545              "$ref": "#/definitions/MarkConfig"
3546            }
3547          ]
3548        },
3549        "borders": {
3550          "anyOf": [
3551            {
3552              "type": "boolean"
3553            },
3554            {
3555              "$ref": "#/definitions/MarkConfig"
3556            }
3557          ]
3558        },
3559        "clip": {
3560          "description": "Whether a composite mark be clipped to the enclosing group’s width and height.",
3561          "type": "boolean"
3562        },
3563        "color": {
3564          "$ref": "#/definitions/Color",
3565          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
3566        },
3567        "extent": {
3568          "$ref": "#/definitions/ErrorBarExtent",
3569          "description": "The extent of the band. Available options include:\n- `\"ci\"`: Extend the band to the confidence interval of the mean.\n- `\"stderr\"`: The size of band are set to the value of standard error, extending from the mean.\n- `\"stdev\"`: The size of band are set to the value of standard deviation, extending from the mean.\n- `\"iqr\"`: Extend the band to the q1 and q3.\n\n__Default value:__ `\"stderr\"`."
3570        },
3571        "interpolate": {
3572          "$ref": "#/definitions/Interpolate",
3573          "description": "The line interpolation method for the error band. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines. The y-value changes at the midpoint of each pair of adjacent x-values.\n- `\"step-before\"`: a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines. The y-value changes before the x-value.\n- `\"step-after\"`: a piecewise constant function (a step function) consisting of alternating horizontal and vertical lines. The y-value changes after the x-value.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
3574        },
3575        "opacity": {
3576          "description": "The opacity (value between [0,1]) of the mark.",
3577          "type": "number"
3578        },
3579        "orient": {
3580          "$ref": "#/definitions/Orientation",
3581          "description": "Orientation of the error band. This is normally automatically determined, but can be specified when the orientation is ambiguous and cannot be automatically determined."
3582        },
3583        "tension": {
3584          "description": "The tension parameter for the interpolation type of the error band.",
3585          "maximum": 1,
3586          "minimum": 0,
3587          "type": "number"
3588        },
3589        "type": {
3590          "$ref": "#/definitions/ErrorBand",
3591          "description": "The mark type. This could a primitive mark type\n(one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"geoshape\"`, `\"rule\"`, and `\"text\"`)\nor a composite mark type (`\"boxplot\"`, `\"errorband\"`, `\"errorbar\"`)."
3592        }
3593      },
3594      "required": [
3595        "type"
3596      ],
3597      "type": "object"
3598    },
3599    "ErrorBar": {
3600      "enum": [
3601        "errorbar"
3602      ],
3603      "type": "string"
3604    },
3605    "ErrorBarConfig": {
3606      "additionalProperties": false,
3607      "properties": {
3608        "extent": {
3609          "$ref": "#/definitions/ErrorBarExtent",
3610          "description": "The extent of the rule. Available options include:\n- `\"ci\"`: Extend the rule to the confidence interval of the mean.\n- `\"stderr\"`: The size of rule are set to the value of standard error, extending from the mean.\n- `\"stdev\"`: The size of rule are set to the value of standard deviation, extending from the mean.\n- `\"iqr\"`: Extend the rule to the q1 and q3.\n\n__Default value:__ `\"stderr\"`."
3611        },
3612        "rule": {
3613          "anyOf": [
3614            {
3615              "type": "boolean"
3616            },
3617            {
3618              "$ref": "#/definitions/MarkConfig"
3619            }
3620          ]
3621        },
3622        "ticks": {
3623          "anyOf": [
3624            {
3625              "type": "boolean"
3626            },
3627            {
3628              "$ref": "#/definitions/MarkConfig"
3629            }
3630          ]
3631        }
3632      },
3633      "type": "object"
3634    },
3635    "ErrorBarDef": {
3636      "additionalProperties": false,
3637      "properties": {
3638        "clip": {
3639          "description": "Whether a composite mark be clipped to the enclosing group’s width and height.",
3640          "type": "boolean"
3641        },
3642        "color": {
3643          "$ref": "#/definitions/Color",
3644          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
3645        },
3646        "extent": {
3647          "$ref": "#/definitions/ErrorBarExtent",
3648          "description": "The extent of the rule. Available options include:\n- `\"ci\"`: Extend the rule to the confidence interval of the mean.\n- `\"stderr\"`: The size of rule are set to the value of standard error, extending from the mean.\n- `\"stdev\"`: The size of rule are set to the value of standard deviation, extending from the mean.\n- `\"iqr\"`: Extend the rule to the q1 and q3.\n\n__Default value:__ `\"stderr\"`."
3649        },
3650        "opacity": {
3651          "description": "The opacity (value between [0,1]) of the mark.",
3652          "type": "number"
3653        },
3654        "orient": {
3655          "$ref": "#/definitions/Orientation",
3656          "description": "Orientation of the error bar.  This is normally automatically determined, but can be specified when the orientation is ambiguous and cannot be automatically determined."
3657        },
3658        "rule": {
3659          "anyOf": [
3660            {
3661              "type": "boolean"
3662            },
3663            {
3664              "$ref": "#/definitions/MarkConfig"
3665            }
3666          ]
3667        },
3668        "ticks": {
3669          "anyOf": [
3670            {
3671              "type": "boolean"
3672            },
3673            {
3674              "$ref": "#/definitions/MarkConfig"
3675            }
3676          ]
3677        },
3678        "type": {
3679          "$ref": "#/definitions/ErrorBar",
3680          "description": "The mark type. This could a primitive mark type\n(one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"geoshape\"`, `\"rule\"`, and `\"text\"`)\nor a composite mark type (`\"boxplot\"`, `\"errorband\"`, `\"errorbar\"`)."
3681        }
3682      },
3683      "required": [
3684        "type"
3685      ],
3686      "type": "object"
3687    },
3688    "ErrorBarExtent": {
3689      "enum": [
3690        "ci",
3691        "iqr",
3692        "stderr",
3693        "stdev"
3694      ],
3695      "type": "string"
3696    },
3697    "EventStream": {
3698    },
3699    "FacetFieldDef": {
3700      "additionalProperties": false,
3701      "properties": {
3702        "aggregate": {
3703          "$ref": "#/definitions/Aggregate",
3704          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
3705        },
3706        "bin": {
3707          "anyOf": [
3708            {
3709              "type": "boolean"
3710            },
3711            {
3712              "$ref": "#/definitions/BinParams"
3713            },
3714            {
3715              "type": "null"
3716            }
3717          ],
3718          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
3719        },
3720        "field": {
3721          "$ref": "#/definitions/Field",
3722          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
3723        },
3724        "header": {
3725          "$ref": "#/definitions/Header",
3726          "description": "An object defining properties of a facet's header."
3727        },
3728        "sort": {
3729          "anyOf": [
3730            {
3731              "$ref": "#/definitions/SortArray"
3732            },
3733            {
3734              "$ref": "#/definitions/SortOrder"
3735            },
3736            {
3737              "$ref": "#/definitions/EncodingSortField"
3738            },
3739            {
3740              "type": "null"
3741            }
3742          ],
3743          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`."
3744        },
3745        "timeUnit": {
3746          "$ref": "#/definitions/TimeUnit",
3747          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
3748        },
3749        "title": {
3750          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
3751          "type": [
3752            "string",
3753            "null"
3754          ]
3755        },
3756        "type": {
3757          "$ref": "#/definitions/StandardType",
3758          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
3759        }
3760      },
3761      "required": [
3762        "type"
3763      ],
3764      "type": "object"
3765    },
3766    "FacetMapping": {
3767      "additionalProperties": false,
3768      "properties": {
3769        "column": {
3770          "$ref": "#/definitions/FacetFieldDef",
3771          "description": "A field definition for the horizontal facet of trellis plots."
3772        },
3773        "row": {
3774          "$ref": "#/definitions/FacetFieldDef",
3775          "description": "A field definition for the vertical facet of trellis plots."
3776        }
3777      },
3778      "type": "object"
3779    },
3780    "FacetedEncoding": {
3781      "additionalProperties": false,
3782      "properties": {
3783        "color": {
3784          "anyOf": [
3785            {
3786              "$ref": "#/definitions/StringFieldDefWithCondition"
3787            },
3788            {
3789              "$ref": "#/definitions/StringValueDefWithCondition"
3790            }
3791          ],
3792          "description": "Color of the marks – either fill or stroke color based on  the `filled` property of mark definition.\nBy default, `color` represents fill color for `\"area\"`, `\"bar\"`, `\"tick\"`,\n`\"text\"`, `\"trail\"`, `\"circle\"`, and `\"square\"` / stroke color for `\"line\"` and `\"point\"`.\n\n__Default value:__ If undefined, the default color depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `color` property.\n\n_Note:_\n1) For fine-grained control over both fill and stroke colors of the marks, please use the `fill` and `stroke` channels.  If either `fill` or `stroke` channel is specified, `color` channel will be ignored.\n2) See the scale documentation for more information about customizing [color scheme](https://vega.github.io/vega-lite/docs/scale.html#scheme)."
3793        },
3794        "column": {
3795          "$ref": "#/definitions/FacetFieldDef",
3796          "description": "A field definition for the horizontal facet of trellis plots."
3797        },
3798        "detail": {
3799          "anyOf": [
3800            {
3801              "$ref": "#/definitions/FieldDefWithoutScale"
3802            },
3803            {
3804              "items": {
3805                "$ref": "#/definitions/FieldDefWithoutScale"
3806              },
3807              "type": "array"
3808            }
3809          ],
3810          "description": "Additional levels of detail for grouping data in aggregate views and\nin line, trail, and area marks without mapping data to a specific visual channel."
3811        },
3812        "facet": {
3813          "$ref": "#/definitions/FacetFieldDef",
3814          "description": "A field definition for the (flexible) facet of trellis plots.\n\nIf either `row` or `column` is specified, this channel will be ignored."
3815        },
3816        "fill": {
3817          "anyOf": [
3818            {
3819              "$ref": "#/definitions/StringFieldDefWithCondition"
3820            },
3821            {
3822              "$ref": "#/definitions/StringValueDefWithCondition"
3823            }
3824          ],
3825          "description": "Fill color of the marks.\n__Default value:__ If undefined, the default color depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `color` property.\n\n_Note:_ When using `fill` channel, `color ` channel will be ignored. To customize both fill and stroke, please use `fill` and `stroke` channels (not `fill` and `color`)."
3826        },
3827        "fillOpacity": {
3828          "anyOf": [
3829            {
3830              "$ref": "#/definitions/NumericFieldDefWithCondition"
3831            },
3832            {
3833              "$ref": "#/definitions/NumericValueDefWithCondition"
3834            }
3835          ],
3836          "description": "Fill opacity of the marks.\n\n__Default value:__ If undefined, the default opacity depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `fillOpacity` property."
3837        },
3838        "href": {
3839          "anyOf": [
3840            {
3841              "$ref": "#/definitions/TextFieldDefWithCondition"
3842            },
3843            {
3844              "$ref": "#/definitions/TextValueDefWithCondition"
3845            }
3846          ],
3847          "description": "A URL to load upon mouse click."
3848        },
3849        "key": {
3850          "$ref": "#/definitions/FieldDefWithoutScale",
3851          "description": "A data field to use as a unique key for data binding. When a visualization’s data is updated, the key value will be used to match data elements to existing mark instances. Use a key channel to enable object constancy for transitions over dynamic data."
3852        },
3853        "latitude": {
3854          "anyOf": [
3855            {
3856              "$ref": "#/definitions/LatLongFieldDef"
3857            },
3858            {
3859              "$ref": "#/definitions/NumberValueDef"
3860            }
3861          ],
3862          "description": "Latitude position of geographically projected marks."
3863        },
3864        "latitude2": {
3865          "anyOf": [
3866            {
3867              "$ref": "#/definitions/SecondaryFieldDef"
3868            },
3869            {
3870              "$ref": "#/definitions/NumberValueDef"
3871            }
3872          ],
3873          "description": "Latitude-2 position for geographically projected ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`."
3874        },
3875        "longitude": {
3876          "anyOf": [
3877            {
3878              "$ref": "#/definitions/LatLongFieldDef"
3879            },
3880            {
3881              "$ref": "#/definitions/NumberValueDef"
3882            }
3883          ],
3884          "description": "Longitude position of geographically projected marks."
3885        },
3886        "longitude2": {
3887          "anyOf": [
3888            {
3889              "$ref": "#/definitions/SecondaryFieldDef"
3890            },
3891            {
3892              "$ref": "#/definitions/NumberValueDef"
3893            }
3894          ],
3895          "description": "Longitude-2 position for geographically projected ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`."
3896        },
3897        "opacity": {
3898          "anyOf": [
3899            {
3900              "$ref": "#/definitions/NumericFieldDefWithCondition"
3901            },
3902            {
3903              "$ref": "#/definitions/NumericValueDefWithCondition"
3904            }
3905          ],
3906          "description": "Opacity of the marks.\n\n__Default value:__ If undefined, the default opacity depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `opacity` property."
3907        },
3908        "order": {
3909          "anyOf": [
3910            {
3911              "$ref": "#/definitions/OrderFieldDef"
3912            },
3913            {
3914              "items": {
3915                "$ref": "#/definitions/OrderFieldDef"
3916              },
3917              "type": "array"
3918            },
3919            {
3920              "$ref": "#/definitions/NumberValueDef"
3921            }
3922          ],
3923          "description": "Order of the marks.\n- For stacked marks, this `order` channel encodes [stack order](https://vega.github.io/vega-lite/docs/stack.html#order).\n- For line and trail marks, this `order` channel encodes order of data points in the lines. This can be useful for creating [a connected scatterplot](https://vega.github.io/vega-lite/examples/connected_scatterplot.html).  Setting `order` to `{\"value\": null}` makes the line marks use the original order in the data sources.\n- Otherwise, this `order` channel encodes layer order of the marks.\n\n__Note__: In aggregate plots, `order` field should be `aggregate`d to avoid creating additional aggregation grouping."
3924        },
3925        "row": {
3926          "$ref": "#/definitions/FacetFieldDef",
3927          "description": "A field definition for the vertical facet of trellis plots."
3928        },
3929        "shape": {
3930          "anyOf": [
3931            {
3932              "$ref": "#/definitions/ShapeFieldDefWithCondition"
3933            },
3934            {
3935              "$ref": "#/definitions/ShapeValueDefWithCondition"
3936            }
3937          ],
3938          "description": "Shape of the mark.\n\n1. For `point` marks the supported values include:\n   - plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n   - the line symbol `\"stroke\"`\n   - centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n   - a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n2. For `geoshape` marks it should be a field definition of the geojson data\n\n__Default value:__ If undefined, the default shape depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#point-config)'s `shape` property. (`\"circle\"` if unset.)"
3939        },
3940        "size": {
3941          "anyOf": [
3942            {
3943              "$ref": "#/definitions/NumericFieldDefWithCondition"
3944            },
3945            {
3946              "$ref": "#/definitions/NumericValueDefWithCondition"
3947            }
3948          ],
3949          "description": "Size of the mark.\n- For `\"point\"`, `\"square\"` and `\"circle\"`, – the symbol size, or pixel area of the mark.\n- For `\"bar\"` and `\"tick\"` – the bar and tick's size.\n- For `\"text\"` – the text's font size.\n- Size is unsupported for `\"line\"`, `\"area\"`, and `\"rect\"`. (Use `\"trail\"` instead of line with varying size)"
3950        },
3951        "stroke": {
3952          "anyOf": [
3953            {
3954              "$ref": "#/definitions/StringFieldDefWithCondition"
3955            },
3956            {
3957              "$ref": "#/definitions/StringValueDefWithCondition"
3958            }
3959          ],
3960          "description": "Stroke color of the marks.\n__Default value:__ If undefined, the default color depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `color` property.\n\n_Note:_ When using `stroke` channel, `color ` channel will be ignored. To customize both stroke and fill, please use `stroke` and `fill` channels (not `stroke` and `color`)."
3961        },
3962        "strokeOpacity": {
3963          "anyOf": [
3964            {
3965              "$ref": "#/definitions/NumericFieldDefWithCondition"
3966            },
3967            {
3968              "$ref": "#/definitions/NumericValueDefWithCondition"
3969            }
3970          ],
3971          "description": "Stroke opacity of the marks.\n\n__Default value:__ If undefined, the default opacity depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `strokeOpacity` property."
3972        },
3973        "strokeWidth": {
3974          "anyOf": [
3975            {
3976              "$ref": "#/definitions/NumericFieldDefWithCondition"
3977            },
3978            {
3979              "$ref": "#/definitions/NumericValueDefWithCondition"
3980            }
3981          ],
3982          "description": "Stroke width of the marks.\n\n__Default value:__ If undefined, the default stroke width depends on [mark config](https://vega.github.io/vega-lite/docs/config.html#mark)'s `strokeWidth` property."
3983        },
3984        "text": {
3985          "anyOf": [
3986            {
3987              "$ref": "#/definitions/TextFieldDefWithCondition"
3988            },
3989            {
3990              "$ref": "#/definitions/TextValueDefWithCondition"
3991            }
3992          ],
3993          "description": "Text of the `text` mark."
3994        },
3995        "tooltip": {
3996          "anyOf": [
3997            {
3998              "$ref": "#/definitions/TextFieldDefWithCondition"
3999            },
4000            {
4001              "$ref": "#/definitions/TextValueDefWithCondition"
4002            },
4003            {
4004              "items": {
4005                "$ref": "#/definitions/TextFieldDef"
4006              },
4007              "type": "array"
4008            },
4009            {
4010              "type": "null"
4011            }
4012          ],
4013          "description": "The tooltip text to show upon mouse hover."
4014        },
4015        "x": {
4016          "anyOf": [
4017            {
4018              "$ref": "#/definitions/PositionFieldDef"
4019            },
4020            {
4021              "$ref": "#/definitions/XValueDef"
4022            }
4023          ],
4024          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
4025        },
4026        "x2": {
4027          "anyOf": [
4028            {
4029              "$ref": "#/definitions/SecondaryFieldDef"
4030            },
4031            {
4032              "$ref": "#/definitions/XValueDef"
4033            }
4034          ],
4035          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
4036        },
4037        "xError": {
4038          "anyOf": [
4039            {
4040              "$ref": "#/definitions/SecondaryFieldDef"
4041            },
4042            {
4043              "$ref": "#/definitions/NumberValueDef"
4044            }
4045          ],
4046          "description": "Error value of x coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
4047        },
4048        "xError2": {
4049          "anyOf": [
4050            {
4051              "$ref": "#/definitions/SecondaryFieldDef"
4052            },
4053            {
4054              "$ref": "#/definitions/NumberValueDef"
4055            }
4056          ],
4057          "description": "Secondary error value of x coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
4058        },
4059        "y": {
4060          "anyOf": [
4061            {
4062              "$ref": "#/definitions/PositionFieldDef"
4063            },
4064            {
4065              "$ref": "#/definitions/YValueDef"
4066            }
4067          ],
4068          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
4069        },
4070        "y2": {
4071          "anyOf": [
4072            {
4073              "$ref": "#/definitions/SecondaryFieldDef"
4074            },
4075            {
4076              "$ref": "#/definitions/YValueDef"
4077            }
4078          ],
4079          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
4080        },
4081        "yError": {
4082          "anyOf": [
4083            {
4084              "$ref": "#/definitions/SecondaryFieldDef"
4085            },
4086            {
4087              "$ref": "#/definitions/NumberValueDef"
4088            }
4089          ],
4090          "description": "Error value of y coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
4091        },
4092        "yError2": {
4093          "anyOf": [
4094            {
4095              "$ref": "#/definitions/SecondaryFieldDef"
4096            },
4097            {
4098              "$ref": "#/definitions/NumberValueDef"
4099            }
4100          ],
4101          "description": "Secondary error value of y coordinates for error specified `\"errorbar\"` and `\"errorband\"`."
4102        }
4103      },
4104      "type": "object"
4105    },
4106    "FacetedUnitSpec": {
4107      "additionalProperties": false,
4108      "description": "Unit spec that can have a composite mark and row or column channels (shorthand for a facet spec).",
4109      "properties": {
4110        "align": {
4111          "anyOf": [
4112            {
4113              "$ref": "#/definitions/LayoutAlign"
4114            },
4115            {
4116              "$ref": "#/definitions/RowCol<LayoutAlign>"
4117            }
4118          ],
4119          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
4120        },
4121        "bounds": {
4122          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
4123          "enum": [
4124            "full",
4125            "flush"
4126          ],
4127          "type": "string"
4128        },
4129        "center": {
4130          "anyOf": [
4131            {
4132              "type": "boolean"
4133            },
4134            {
4135              "$ref": "#/definitions/RowCol<boolean>"
4136            }
4137          ],
4138          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
4139        },
4140        "columns": {
4141          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
4142          "type": "number"
4143        },
4144        "data": {
4145          "anyOf": [
4146            {
4147              "$ref": "#/definitions/Data"
4148            },
4149            {
4150              "type": "null"
4151            }
4152          ],
4153          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
4154        },
4155        "description": {
4156          "description": "Description of this mark for commenting purpose.",
4157          "type": "string"
4158        },
4159        "encoding": {
4160          "$ref": "#/definitions/FacetedEncoding",
4161          "description": "A key-value mapping between encoding channels and definition of fields."
4162        },
4163        "height": {
4164          "description": "The height of a visualization.\n\n__Default value:__\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its y-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For y-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the height is [determined by the range step, paddings, and the cardinality of the field mapped to y-channel](https://vega.github.io/vega-lite/docs/scale.html#band). Otherwise, if the `rangeStep` is `null`, the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `y` channel, the `height` will be the value of `rangeStep`.\n\n__Note__: For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the height of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
4165          "type": "number"
4166        },
4167        "mark": {
4168          "$ref": "#/definitions/AnyMark",
4169          "description": "A string describing the mark type (one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"rule\"`, `\"geoshape\"`, and `\"text\"`) or a [mark definition object](https://vega.github.io/vega-lite/docs/mark.html#mark-def)."
4170        },
4171        "name": {
4172          "description": "Name of the visualization for later reference.",
4173          "type": "string"
4174        },
4175        "projection": {
4176          "$ref": "#/definitions/Projection",
4177          "description": "An object defining properties of geographic projection, which will be applied to `shape` path for `\"geoshape\"` marks\nand to `latitude` and `\"longitude\"` channels for other marks."
4178        },
4179        "resolve": {
4180          "$ref": "#/definitions/Resolve",
4181          "description": "Scale, axis, and legend resolutions for view composition specifications."
4182        },
4183        "selection": {
4184          "additionalProperties": {
4185            "$ref": "#/definitions/SelectionDef"
4186          },
4187          "description": "A key-value mapping between selection names and definitions.",
4188          "type": "object"
4189        },
4190        "spacing": {
4191          "anyOf": [
4192            {
4193              "type": "number"
4194            },
4195            {
4196              "$ref": "#/definitions/RowCol<number>"
4197            }
4198          ],
4199          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
4200        },
4201        "title": {
4202          "anyOf": [
4203            {
4204              "type": "string"
4205            },
4206            {
4207              "$ref": "#/definitions/TitleParams"
4208            }
4209          ],
4210          "description": "Title for the plot."
4211        },
4212        "transform": {
4213          "description": "An array of data transformations such as filter and new field calculation.",
4214          "items": {
4215            "$ref": "#/definitions/Transform"
4216          },
4217          "type": "array"
4218        },
4219        "view": {
4220          "$ref": "#/definitions/ViewBackground",
4221          "description": "An object defining the view background's fill and stroke.\n\n__Default value:__ none (transparent)"
4222        },
4223        "width": {
4224          "description": "The width of a visualization.\n\n__Default value:__ This will be determined by the following rules:\n\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its x-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For x-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the width is [determined by the range step, paddings, and the cardinality of the field mapped to x-channel](https://vega.github.io/vega-lite/docs/scale.html#band).   Otherwise, if the `rangeStep` is `null`, the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `x` channel, the `width` will be the value of [`config.scale.textXRangeStep`](https://vega.github.io/vega-lite/docs/size.html#default-width-and-height) for `text` mark and the value of `rangeStep` for other marks.\n\n__Note:__ For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the width of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
4225          "type": "number"
4226        }
4227      },
4228      "required": [
4229        "mark"
4230      ],
4231      "type": "object"
4232    },
4233    "Field": {
4234      "anyOf": [
4235        {
4236          "$ref": "#/definitions/FieldName"
4237        },
4238        {
4239          "$ref": "#/definitions/RepeatRef"
4240        }
4241      ]
4242    },
4243    "FieldDefWithCondition<MarkPropFieldDef,(string|null)>": {
4244      "additionalProperties": false,
4245      "description": "A FieldDef with Condition<ValueDef>\n{\n   condition: {value: ...},\n   field: ...,\n   ...\n}",
4246      "properties": {
4247        "aggregate": {
4248          "$ref": "#/definitions/Aggregate",
4249          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
4250        },
4251        "bin": {
4252          "anyOf": [
4253            {
4254              "type": "boolean"
4255            },
4256            {
4257              "$ref": "#/definitions/BinParams"
4258            },
4259            {
4260              "type": "null"
4261            }
4262          ],
4263          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
4264        },
4265        "condition": {
4266          "anyOf": [
4267            {
4268              "$ref": "#/definitions/ConditionalStringValueDef"
4269            },
4270            {
4271              "items": {
4272                "$ref": "#/definitions/ConditionalStringValueDef"
4273              },
4274              "type": "array"
4275            }
4276          ],
4277          "description": "One or more value definition(s) with [a selection or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value)\nsince Vega-Lite only allows at most one encoded field per encoding channel."
4278        },
4279        "field": {
4280          "$ref": "#/definitions/Field",
4281          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
4282        },
4283        "legend": {
4284          "anyOf": [
4285            {
4286              "$ref": "#/definitions/Legend"
4287            },
4288            {
4289              "type": "null"
4290            }
4291          ],
4292          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
4293        },
4294        "scale": {
4295          "anyOf": [
4296            {
4297              "$ref": "#/definitions/Scale"
4298            },
4299            {
4300              "type": "null"
4301            }
4302          ],
4303          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
4304        },
4305        "sort": {
4306          "$ref": "#/definitions/Sort",
4307          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
4308        },
4309        "timeUnit": {
4310          "$ref": "#/definitions/TimeUnit",
4311          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
4312        },
4313        "title": {
4314          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
4315          "type": [
4316            "string",
4317            "null"
4318          ]
4319        },
4320        "type": {
4321          "$ref": "#/definitions/StandardType",
4322          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
4323        }
4324      },
4325      "required": [
4326        "type"
4327      ],
4328      "type": "object"
4329    },
4330    "FieldDefWithCondition<MarkPropFieldDef,number>": {
4331      "additionalProperties": false,
4332      "description": "A FieldDef with Condition<ValueDef>\n{\n   condition: {value: ...},\n   field: ...,\n   ...\n}",
4333      "properties": {
4334        "aggregate": {
4335          "$ref": "#/definitions/Aggregate",
4336          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
4337        },
4338        "bin": {
4339          "anyOf": [
4340            {
4341              "type": "boolean"
4342            },
4343            {
4344              "$ref": "#/definitions/BinParams"
4345            },
4346            {
4347              "type": "null"
4348            }
4349          ],
4350          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
4351        },
4352        "condition": {
4353          "anyOf": [
4354            {
4355              "$ref": "#/definitions/ConditionalNumberValueDef"
4356            },
4357            {
4358              "items": {
4359                "$ref": "#/definitions/ConditionalNumberValueDef"
4360              },
4361              "type": "array"
4362            }
4363          ],
4364          "description": "One or more value definition(s) with [a selection or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value)\nsince Vega-Lite only allows at most one encoded field per encoding channel."
4365        },
4366        "field": {
4367          "$ref": "#/definitions/Field",
4368          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
4369        },
4370        "legend": {
4371          "anyOf": [
4372            {
4373              "$ref": "#/definitions/Legend"
4374            },
4375            {
4376              "type": "null"
4377            }
4378          ],
4379          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
4380        },
4381        "scale": {
4382          "anyOf": [
4383            {
4384              "$ref": "#/definitions/Scale"
4385            },
4386            {
4387              "type": "null"
4388            }
4389          ],
4390          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
4391        },
4392        "sort": {
4393          "$ref": "#/definitions/Sort",
4394          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
4395        },
4396        "timeUnit": {
4397          "$ref": "#/definitions/TimeUnit",
4398          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
4399        },
4400        "title": {
4401          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
4402          "type": [
4403            "string",
4404            "null"
4405          ]
4406        },
4407        "type": {
4408          "$ref": "#/definitions/StandardType",
4409          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
4410        }
4411      },
4412      "required": [
4413        "type"
4414      ],
4415      "type": "object"
4416    },
4417    "FieldDefWithCondition<MarkPropFieldDef<TypeForShape>,(string|null)>": {
4418      "additionalProperties": false,
4419      "description": "A FieldDef with Condition<ValueDef>\n{\n   condition: {value: ...},\n   field: ...,\n   ...\n}",
4420      "properties": {
4421        "aggregate": {
4422          "$ref": "#/definitions/Aggregate",
4423          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
4424        },
4425        "bin": {
4426          "anyOf": [
4427            {
4428              "type": "boolean"
4429            },
4430            {
4431              "$ref": "#/definitions/BinParams"
4432            },
4433            {
4434              "type": "null"
4435            }
4436          ],
4437          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
4438        },
4439        "condition": {
4440          "anyOf": [
4441            {
4442              "$ref": "#/definitions/ConditionalStringValueDef"
4443            },
4444            {
4445              "items": {
4446                "$ref": "#/definitions/ConditionalStringValueDef"
4447              },
4448              "type": "array"
4449            }
4450          ],
4451          "description": "One or more value definition(s) with [a selection or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value)\nsince Vega-Lite only allows at most one encoded field per encoding channel."
4452        },
4453        "field": {
4454          "$ref": "#/definitions/Field",
4455          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
4456        },
4457        "legend": {
4458          "anyOf": [
4459            {
4460              "$ref": "#/definitions/Legend"
4461            },
4462            {
4463              "type": "null"
4464            }
4465          ],
4466          "description": "An object defining properties of the legend.\nIf `null`, the legend for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.\n\n__See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation."
4467        },
4468        "scale": {
4469          "anyOf": [
4470            {
4471              "$ref": "#/definitions/Scale"
4472            },
4473            {
4474              "type": "null"
4475            }
4476          ],
4477          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
4478        },
4479        "sort": {
4480          "$ref": "#/definitions/Sort",
4481          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
4482        },
4483        "timeUnit": {
4484          "$ref": "#/definitions/TimeUnit",
4485          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
4486        },
4487        "title": {
4488          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
4489          "type": [
4490            "string",
4491            "null"
4492          ]
4493        },
4494        "type": {
4495          "$ref": "#/definitions/TypeForShape",
4496          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
4497        }
4498      },
4499      "required": [
4500        "type"
4501      ],
4502      "type": "object"
4503    },
4504    "FieldDefWithCondition<TextFieldDef,Value>": {
4505      "additionalProperties": false,
4506      "description": "A FieldDef with Condition<ValueDef>\n{\n   condition: {value: ...},\n   field: ...,\n   ...\n}",
4507      "properties": {
4508        "aggregate": {
4509          "$ref": "#/definitions/Aggregate",
4510          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
4511        },
4512        "bin": {
4513          "anyOf": [
4514            {
4515              "type": "boolean"
4516            },
4517            {
4518              "$ref": "#/definitions/BinParams"
4519            },
4520            {
4521              "enum": [
4522                "binned"
4523              ],
4524              "type": "string"
4525            },
4526            {
4527              "type": "null"
4528            }
4529          ],
4530          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
4531        },
4532        "condition": {
4533          "anyOf": [
4534            {
4535              "$ref": "#/definitions/ConditionalValueDef"
4536            },
4537            {
4538              "items": {
4539                "$ref": "#/definitions/ConditionalValueDef"
4540              },
4541              "type": "array"
4542            }
4543          ],
4544          "description": "One or more value definition(s) with [a selection or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value)\nsince Vega-Lite only allows at most one encoded field per encoding channel."
4545        },
4546        "field": {
4547          "$ref": "#/definitions/Field",
4548          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
4549        },
4550        "format": {
4551          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
4552          "type": "string"
4553        },
4554        "formatType": {
4555          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
4556          "enum": [
4557            "number",
4558            "time"
4559          ],
4560          "type": "string"
4561        },
4562        "timeUnit": {
4563          "$ref": "#/definitions/TimeUnit",
4564          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
4565        },
4566        "title": {
4567          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
4568          "type": [
4569            "string",
4570            "null"
4571          ]
4572        },
4573        "type": {
4574          "$ref": "#/definitions/StandardType",
4575          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
4576        }
4577      },
4578      "required": [
4579        "type"
4580      ],
4581      "type": "object"
4582    },
4583    "FieldDefWithoutScale": {
4584      "$ref": "#/definitions/TypedFieldDef",
4585      "description": "Field Def without scale (and without bin: \"binned\" support)."
4586    },
4587    "FieldEqualPredicate": {
4588      "additionalProperties": false,
4589      "properties": {
4590        "equal": {
4591          "anyOf": [
4592            {
4593              "type": "string"
4594            },
4595            {
4596              "type": "number"
4597            },
4598            {
4599              "type": "boolean"
4600            },
4601            {
4602              "$ref": "#/definitions/DateTime"
4603            }
4604          ],
4605          "description": "The value that the field should be equal to."
4606        },
4607        "field": {
4608          "$ref": "#/definitions/FieldName",
4609          "description": "Field to be filtered."
4610        },
4611        "timeUnit": {
4612          "$ref": "#/definitions/TimeUnit",
4613          "description": "Time unit for the field to be filtered."
4614        }
4615      },
4616      "required": [
4617        "equal",
4618        "field"
4619      ],
4620      "type": "object"
4621    },
4622    "FieldGTEPredicate": {
4623      "additionalProperties": false,
4624      "properties": {
4625        "field": {
4626          "$ref": "#/definitions/FieldName",
4627          "description": "Field to be filtered."
4628        },
4629        "gte": {
4630          "anyOf": [
4631            {
4632              "type": "string"
4633            },
4634            {
4635              "type": "number"
4636            },
4637            {
4638              "$ref": "#/definitions/DateTime"
4639            }
4640          ],
4641          "description": "The value that the field should be greater than or equals to."
4642        },
4643        "timeUnit": {
4644          "$ref": "#/definitions/TimeUnit",
4645          "description": "Time unit for the field to be filtered."
4646        }
4647      },
4648      "required": [
4649        "field",
4650        "gte"
4651      ],
4652      "type": "object"
4653    },
4654    "FieldGTPredicate": {
4655      "additionalProperties": false,
4656      "properties": {
4657        "field": {
4658          "$ref": "#/definitions/FieldName",
4659          "description": "Field to be filtered."
4660        },
4661        "gt": {
4662          "anyOf": [
4663            {
4664              "type": "string"
4665            },
4666            {
4667              "type": "number"
4668            },
4669            {
4670              "$ref": "#/definitions/DateTime"
4671            }
4672          ],
4673          "description": "The value that the field should be greater than."
4674        },
4675        "timeUnit": {
4676          "$ref": "#/definitions/TimeUnit",
4677          "description": "Time unit for the field to be filtered."
4678        }
4679      },
4680      "required": [
4681        "field",
4682        "gt"
4683      ],
4684      "type": "object"
4685    },
4686    "FieldLTEPredicate": {
4687      "additionalProperties": false,
4688      "properties": {
4689        "field": {
4690          "$ref": "#/definitions/FieldName",
4691          "description": "Field to be filtered."
4692        },
4693        "lte": {
4694          "anyOf": [
4695            {
4696              "type": "string"
4697            },
4698            {
4699              "type": "number"
4700            },
4701            {
4702              "$ref": "#/definitions/DateTime"
4703            }
4704          ],
4705          "description": "The value that the field should be less than or equals to."
4706        },
4707        "timeUnit": {
4708          "$ref": "#/definitions/TimeUnit",
4709          "description": "Time unit for the field to be filtered."
4710        }
4711      },
4712      "required": [
4713        "field",
4714        "lte"
4715      ],
4716      "type": "object"
4717    },
4718    "FieldLTPredicate": {
4719      "additionalProperties": false,
4720      "properties": {
4721        "field": {
4722          "$ref": "#/definitions/FieldName",
4723          "description": "Field to be filtered."
4724        },
4725        "lt": {
4726          "anyOf": [
4727            {
4728              "type": "string"
4729            },
4730            {
4731              "type": "number"
4732            },
4733            {
4734              "$ref": "#/definitions/DateTime"
4735            }
4736          ],
4737          "description": "The value that the field should be less than."
4738        },
4739        "timeUnit": {
4740          "$ref": "#/definitions/TimeUnit",
4741          "description": "Time unit for the field to be filtered."
4742        }
4743      },
4744      "required": [
4745        "field",
4746        "lt"
4747      ],
4748      "type": "object"
4749    },
4750    "FieldName": {
4751      "type": "string"
4752    },
4753    "FieldOneOfPredicate": {
4754      "additionalProperties": false,
4755      "properties": {
4756        "field": {
4757          "$ref": "#/definitions/FieldName",
4758          "description": "Field to be filtered."
4759        },
4760        "oneOf": {
4761          "anyOf": [
4762            {
4763              "items": {
4764                "type": "string"
4765              },
4766              "type": "array"
4767            },
4768            {
4769              "items": {
4770                "type": "number"
4771              },
4772              "type": "array"
4773            },
4774            {
4775              "items": {
4776                "type": "boolean"
4777              },
4778              "type": "array"
4779            },
4780            {
4781              "items": {
4782                "$ref": "#/definitions/DateTime"
4783              },
4784              "type": "array"
4785            }
4786          ],
4787          "description": "A set of values that the `field`'s value should be a member of,\nfor a data item included in the filtered data."
4788        },
4789        "timeUnit": {
4790          "$ref": "#/definitions/TimeUnit",
4791          "description": "Time unit for the field to be filtered."
4792        }
4793      },
4794      "required": [
4795        "field",
4796        "oneOf"
4797      ],
4798      "type": "object"
4799    },
4800    "FieldRangePredicate": {
4801      "additionalProperties": false,
4802      "properties": {
4803        "field": {
4804          "$ref": "#/definitions/FieldName",
4805          "description": "Field to be filtered."
4806        },
4807        "range": {
4808          "description": "An array of inclusive minimum and maximum values\nfor a field value of a data item to be included in the filtered data.",
4809          "items": {
4810            "anyOf": [
4811              {
4812                "type": "number"
4813              },
4814              {
4815                "$ref": "#/definitions/DateTime"
4816              },
4817              {
4818                "type": "null"
4819              }
4820            ]
4821          },
4822          "maxItems": 2,
4823          "minItems": 2,
4824          "type": "array"
4825        },
4826        "timeUnit": {
4827          "$ref": "#/definitions/TimeUnit",
4828          "description": "Time unit for the field to be filtered."
4829        }
4830      },
4831      "required": [
4832        "field",
4833        "range"
4834      ],
4835      "type": "object"
4836    },
4837    "FieldValidPredicate": {
4838      "additionalProperties": false,
4839      "properties": {
4840        "field": {
4841          "$ref": "#/definitions/FieldName",
4842          "description": "Field to be filtered."
4843        },
4844        "timeUnit": {
4845          "$ref": "#/definitions/TimeUnit",
4846          "description": "Time unit for the field to be filtered."
4847        },
4848        "valid": {
4849          "description": "If set to true the field's value has to be valid, meaning both not `null` and not [`NaN`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN).",
4850          "type": "boolean"
4851        }
4852      },
4853      "required": [
4854        "field",
4855        "valid"
4856      ],
4857      "type": "object"
4858    },
4859    "FilterTransform": {
4860      "additionalProperties": false,
4861      "properties": {
4862        "filter": {
4863          "$ref": "#/definitions/LogicalOperand<Predicate>",
4864          "description": "The `filter` property must be one of the predicate definitions:\n\n1) an [expression](https://vega.github.io/vega-lite/docs/types.html#expression) string,\nwhere `datum` can be used to refer to the current data object\n\n2) one of the field predicates: [`equal`](https://vega.github.io/vega-lite/docs/filter.html#equal-predicate),\n[`lt`](https://vega.github.io/vega-lite/docs/filter.html#lt-predicate),\n[`lte`](https://vega.github.io/vega-lite/docs/filter.html#lte-predicate),\n[`gt`](https://vega.github.io/vega-lite/docs/filter.html#gt-predicate),\n[`gte`](https://vega.github.io/vega-lite/docs/filter.html#gte-predicate),\n[`range`](https://vega.github.io/vega-lite/docs/filter.html#range-predicate),\n[`oneOf`](https://vega.github.io/vega-lite/docs/filter.html#one-of-predicate),\nor [`valid`](https://vega.github.io/vega-lite/docs/filter.html#valid-predicate),\n\n3) a [selection predicate](https://vega.github.io/vega-lite/docs/filter.html#selection-predicate)\n\n4) a logical operand that combines (1), (2), or (3)."
4865        }
4866      },
4867      "required": [
4868        "filter"
4869      ],
4870      "type": "object"
4871    },
4872    "FlattenTransform": {
4873      "additionalProperties": false,
4874      "properties": {
4875        "as": {
4876          "description": "The output field names for extracted array values.\n\n__Default value:__ The field name of the corresponding array field",
4877          "items": {
4878            "$ref": "#/definitions/FieldName"
4879          },
4880          "type": "array"
4881        },
4882        "flatten": {
4883          "description": "An array of one or more data fields containing arrays to flatten.\nIf multiple fields are specified, their array values should have a parallel structure, ideally with the same length.\nIf the lengths of parallel arrays do not match,\nthe longest array will be used with `null` values added for missing entries.",
4884          "items": {
4885            "$ref": "#/definitions/FieldName"
4886          },
4887          "type": "array"
4888        }
4889      },
4890      "required": [
4891        "flatten"
4892      ],
4893      "type": "object"
4894    },
4895    "FoldTransform": {
4896      "additionalProperties": false,
4897      "properties": {
4898        "as": {
4899          "description": "The output field names for the key and value properties produced by the fold transform.\n__Default value:__ `[\"key\", \"value\"]`",
4900          "items": [
4901            {
4902              "$ref": "#/definitions/FieldName"
4903            },
4904            {
4905              "$ref": "#/definitions/FieldName"
4906            }
4907          ],
4908          "maxItems": 2,
4909          "minItems": 2,
4910          "type": "array"
4911        },
4912        "fold": {
4913          "description": "An array of data fields indicating the properties to fold.",
4914          "items": {
4915            "$ref": "#/definitions/FieldName"
4916          },
4917          "type": "array"
4918        }
4919      },
4920      "required": [
4921        "fold"
4922      ],
4923      "type": "object"
4924    },
4925    "FontStyle": {
4926      "type": "string"
4927    },
4928    "FontWeight": {
4929      "enum": [
4930        "normal",
4931        "bold",
4932        "lighter",
4933        "bolder",
4934        100,
4935        200,
4936        300,
4937        400,
4938        500,
4939        600,
4940        700,
4941        800,
4942        900
4943      ],
4944      "type": [
4945        "string",
4946        "number"
4947      ]
4948    },
4949    "Generator": {
4950      "anyOf": [
4951        {
4952          "$ref": "#/definitions/SequenceGenerator"
4953        },
4954        {
4955          "$ref": "#/definitions/SphereGenerator"
4956        },
4957        {
4958          "$ref": "#/definitions/GraticuleGenerator"
4959        }
4960      ]
4961    },
4962    "ConcatSpec": {
4963      "additionalProperties": false,
4964      "description": "Base interface for a generalized concatenation specification.",
4965      "properties": {
4966        "align": {
4967          "anyOf": [
4968            {
4969              "$ref": "#/definitions/LayoutAlign"
4970            },
4971            {
4972              "$ref": "#/definitions/RowCol<LayoutAlign>"
4973            }
4974          ],
4975          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
4976        },
4977        "bounds": {
4978          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
4979          "enum": [
4980            "full",
4981            "flush"
4982          ],
4983          "type": "string"
4984        },
4985        "center": {
4986          "anyOf": [
4987            {
4988              "type": "boolean"
4989            },
4990            {
4991              "$ref": "#/definitions/RowCol<boolean>"
4992            }
4993          ],
4994          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
4995        },
4996        "columns": {
4997          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
4998          "type": "number"
4999        },
5000        "concat": {
5001          "description": "A list of views to be concatenated.",
5002          "items": {
5003            "$ref": "#/definitions/Spec"
5004          },
5005          "type": "array"
5006        },
5007        "data": {
5008          "anyOf": [
5009            {
5010              "$ref": "#/definitions/Data"
5011            },
5012            {
5013              "type": "null"
5014            }
5015          ],
5016          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
5017        },
5018        "description": {
5019          "description": "Description of this mark for commenting purpose.",
5020          "type": "string"
5021        },
5022        "name": {
5023          "description": "Name of the visualization for later reference.",
5024          "type": "string"
5025        },
5026        "resolve": {
5027          "$ref": "#/definitions/Resolve",
5028          "description": "Scale, axis, and legend resolutions for view composition specifications."
5029        },
5030        "spacing": {
5031          "anyOf": [
5032            {
5033              "type": "number"
5034            },
5035            {
5036              "$ref": "#/definitions/RowCol<number>"
5037            }
5038          ],
5039          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
5040        },
5041        "title": {
5042          "anyOf": [
5043            {
5044              "type": "string"
5045            },
5046            {
5047              "$ref": "#/definitions/TitleParams"
5048            }
5049          ],
5050          "description": "Title for the plot."
5051        },
5052        "transform": {
5053          "description": "An array of data transformations such as filter and new field calculation.",
5054          "items": {
5055            "$ref": "#/definitions/Transform"
5056          },
5057          "type": "array"
5058        }
5059      },
5060      "required": [
5061        "concat"
5062      ],
5063      "type": "object"
5064    },
5065    "FacetSpec": {
5066      "additionalProperties": false,
5067      "description": "Base interface for a facet specification.",
5068      "properties": {
5069        "align": {
5070          "anyOf": [
5071            {
5072              "$ref": "#/definitions/LayoutAlign"
5073            },
5074            {
5075              "$ref": "#/definitions/RowCol<LayoutAlign>"
5076            }
5077          ],
5078          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
5079        },
5080        "bounds": {
5081          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
5082          "enum": [
5083            "full",
5084            "flush"
5085          ],
5086          "type": "string"
5087        },
5088        "center": {
5089          "anyOf": [
5090            {
5091              "type": "boolean"
5092            },
5093            {
5094              "$ref": "#/definitions/RowCol<boolean>"
5095            }
5096          ],
5097          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
5098        },
5099        "columns": {
5100          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
5101          "type": "number"
5102        },
5103        "data": {
5104          "anyOf": [
5105            {
5106              "$ref": "#/definitions/Data"
5107            },
5108            {
5109              "type": "null"
5110            }
5111          ],
5112          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
5113        },
5114        "description": {
5115          "description": "Description of this mark for commenting purpose.",
5116          "type": "string"
5117        },
5118        "facet": {
5119          "anyOf": [
5120            {
5121              "$ref": "#/definitions/FacetFieldDef"
5122            },
5123            {
5124              "$ref": "#/definitions/FacetMapping"
5125            }
5126          ],
5127          "description": "Definition for how to facet the data.  One of:\n1) [a field definition for faceting the plot by one field](https://vega.github.io/vega-lite/docs/facet.html#field-def)\n2) [An object that maps `row` and `column` channels to their field definitions](https://vega.github.io/vega-lite/docs/facet.html#mapping)"
5128        },
5129        "name": {
5130          "description": "Name of the visualization for later reference.",
5131          "type": "string"
5132        },
5133        "resolve": {
5134          "$ref": "#/definitions/Resolve",
5135          "description": "Scale, axis, and legend resolutions for view composition specifications."
5136        },
5137        "spacing": {
5138          "anyOf": [
5139            {
5140              "type": "number"
5141            },
5142            {
5143              "$ref": "#/definitions/RowCol<number>"
5144            }
5145          ],
5146          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
5147        },
5148        "spec": {
5149          "anyOf": [
5150            {
5151              "$ref": "#/definitions/LayerSpec"
5152            },
5153            {
5154              "$ref": "#/definitions/FacetedUnitSpec"
5155            }
5156          ],
5157          "description": "A specification of the view that gets faceted."
5158        },
5159        "title": {
5160          "anyOf": [
5161            {
5162              "type": "string"
5163            },
5164            {
5165              "$ref": "#/definitions/TitleParams"
5166            }
5167          ],
5168          "description": "Title for the plot."
5169        },
5170        "transform": {
5171          "description": "An array of data transformations such as filter and new field calculation.",
5172          "items": {
5173            "$ref": "#/definitions/Transform"
5174          },
5175          "type": "array"
5176        }
5177      },
5178      "required": [
5179        "facet",
5180        "spec"
5181      ],
5182      "type": "object"
5183    },
5184    "HConcatSpec": {
5185      "additionalProperties": false,
5186      "description": "Base interface for a horizontal concatenation specification.",
5187      "properties": {
5188        "bounds": {
5189          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
5190          "enum": [
5191            "full",
5192            "flush"
5193          ],
5194          "type": "string"
5195        },
5196        "center": {
5197          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\n__Default value:__ `false`",
5198          "type": "boolean"
5199        },
5200        "data": {
5201          "anyOf": [
5202            {
5203              "$ref": "#/definitions/Data"
5204            },
5205            {
5206              "type": "null"
5207            }
5208          ],
5209          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
5210        },
5211        "description": {
5212          "description": "Description of this mark for commenting purpose.",
5213          "type": "string"
5214        },
5215        "hconcat": {
5216          "description": "A list of views to be concatenated and put into a row.",
5217          "items": {
5218            "$ref": "#/definitions/Spec"
5219          },
5220          "type": "array"
5221        },
5222        "name": {
5223          "description": "Name of the visualization for later reference.",
5224          "type": "string"
5225        },
5226        "resolve": {
5227          "$ref": "#/definitions/Resolve",
5228          "description": "Scale, axis, and legend resolutions for view composition specifications."
5229        },
5230        "spacing": {
5231          "description": "The spacing in pixels between sub-views of the concat operator.\n\n__Default value__: `10`",
5232          "type": "number"
5233        },
5234        "title": {
5235          "anyOf": [
5236            {
5237              "type": "string"
5238            },
5239            {
5240              "$ref": "#/definitions/TitleParams"
5241            }
5242          ],
5243          "description": "Title for the plot."
5244        },
5245        "transform": {
5246          "description": "An array of data transformations such as filter and new field calculation.",
5247          "items": {
5248            "$ref": "#/definitions/Transform"
5249          },
5250          "type": "array"
5251        }
5252      },
5253      "required": [
5254        "hconcat"
5255      ],
5256      "type": "object"
5257    },
5258    "RepeatSpec": {
5259      "additionalProperties": false,
5260      "description": "Base interface for a repeat specification.",
5261      "properties": {
5262        "align": {
5263          "anyOf": [
5264            {
5265              "$ref": "#/definitions/LayoutAlign"
5266            },
5267            {
5268              "$ref": "#/definitions/RowCol<LayoutAlign>"
5269            }
5270          ],
5271          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
5272        },
5273        "bounds": {
5274          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
5275          "enum": [
5276            "full",
5277            "flush"
5278          ],
5279          "type": "string"
5280        },
5281        "center": {
5282          "anyOf": [
5283            {
5284              "type": "boolean"
5285            },
5286            {
5287              "$ref": "#/definitions/RowCol<boolean>"
5288            }
5289          ],
5290          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
5291        },
5292        "columns": {
5293          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
5294          "type": "number"
5295        },
5296        "data": {
5297          "anyOf": [
5298            {
5299              "$ref": "#/definitions/Data"
5300            },
5301            {
5302              "type": "null"
5303            }
5304          ],
5305          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
5306        },
5307        "description": {
5308          "description": "Description of this mark for commenting purpose.",
5309          "type": "string"
5310        },
5311        "name": {
5312          "description": "Name of the visualization for later reference.",
5313          "type": "string"
5314        },
5315        "repeat": {
5316          "anyOf": [
5317            {
5318              "items": {
5319                "type": "string"
5320              },
5321              "type": "array"
5322            },
5323            {
5324              "$ref": "#/definitions/RepeatMapping"
5325            }
5326          ],
5327          "description": "Definition for fields to be repeated.  One of:\n1) An array of fields to be repeated.  If `\"repeat\"` is an array, the field can be referred using `{\"repeat\": \"repeat\"}`\n2) An object that mapped `\"row\"` and/or `\"column\"` to the listed of fields to be repeated along the particular orientations. The objects `{\"repeat\": \"row\"}` and `{\"repeat\": \"column\"}` can be used to refer to the repeated field respectively."
5328        },
5329        "resolve": {
5330          "$ref": "#/definitions/Resolve",
5331          "description": "Scale, axis, and legend resolutions for view composition specifications."
5332        },
5333        "spacing": {
5334          "anyOf": [
5335            {
5336              "type": "number"
5337            },
5338            {
5339              "$ref": "#/definitions/RowCol<number>"
5340            }
5341          ],
5342          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
5343        },
5344        "spec": {
5345          "$ref": "#/definitions/Spec",
5346          "description": "A specification of the view that gets repeated."
5347        },
5348        "title": {
5349          "anyOf": [
5350            {
5351              "type": "string"
5352            },
5353            {
5354              "$ref": "#/definitions/TitleParams"
5355            }
5356          ],
5357          "description": "Title for the plot."
5358        },
5359        "transform": {
5360          "description": "An array of data transformations such as filter and new field calculation.",
5361          "items": {
5362            "$ref": "#/definitions/Transform"
5363          },
5364          "type": "array"
5365        }
5366      },
5367      "required": [
5368        "repeat",
5369        "spec"
5370      ],
5371      "type": "object"
5372    },
5373    "Spec": {
5374      "anyOf": [
5375        {
5376          "$ref": "#/definitions/FacetedUnitSpec"
5377        },
5378        {
5379          "$ref": "#/definitions/LayerSpec"
5380        },
5381        {
5382          "$ref": "#/definitions/FacetSpec"
5383        },
5384        {
5385          "$ref": "#/definitions/RepeatSpec"
5386        },
5387        {
5388          "$ref": "#/definitions/ConcatSpec"
5389        },
5390        {
5391          "$ref": "#/definitions/VConcatSpec"
5392        },
5393        {
5394          "$ref": "#/definitions/HConcatSpec"
5395        }
5396      ],
5397      "description": "Any specification in Vega-Lite."
5398    },
5399    "GenericUnitSpec<Encoding,AnyMark>": {
5400      "additionalProperties": false,
5401      "description": "Base interface for a unit (single-view) specification.",
5402      "properties": {
5403        "data": {
5404          "anyOf": [
5405            {
5406              "$ref": "#/definitions/Data"
5407            },
5408            {
5409              "type": "null"
5410            }
5411          ],
5412          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
5413        },
5414        "description": {
5415          "description": "Description of this mark for commenting purpose.",
5416          "type": "string"
5417        },
5418        "encoding": {
5419          "$ref": "#/definitions/Encoding",
5420          "description": "A key-value mapping between encoding channels and definition of fields."
5421        },
5422        "height": {
5423          "description": "The height of a visualization.\n\n__Default value:__\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its y-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For y-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the height is [determined by the range step, paddings, and the cardinality of the field mapped to y-channel](https://vega.github.io/vega-lite/docs/scale.html#band). Otherwise, if the `rangeStep` is `null`, the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `y` channel, the `height` will be the value of `rangeStep`.\n\n__Note__: For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the height of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
5424          "type": "number"
5425        },
5426        "mark": {
5427          "$ref": "#/definitions/AnyMark",
5428          "description": "A string describing the mark type (one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"rule\"`, `\"geoshape\"`, and `\"text\"`) or a [mark definition object](https://vega.github.io/vega-lite/docs/mark.html#mark-def)."
5429        },
5430        "name": {
5431          "description": "Name of the visualization for later reference.",
5432          "type": "string"
5433        },
5434        "projection": {
5435          "$ref": "#/definitions/Projection",
5436          "description": "An object defining properties of geographic projection, which will be applied to `shape` path for `\"geoshape\"` marks\nand to `latitude` and `\"longitude\"` channels for other marks."
5437        },
5438        "selection": {
5439          "additionalProperties": {
5440            "$ref": "#/definitions/SelectionDef"
5441          },
5442          "description": "A key-value mapping between selection names and definitions.",
5443          "type": "object"
5444        },
5445        "title": {
5446          "anyOf": [
5447            {
5448              "type": "string"
5449            },
5450            {
5451              "$ref": "#/definitions/TitleParams"
5452            }
5453          ],
5454          "description": "Title for the plot."
5455        },
5456        "transform": {
5457          "description": "An array of data transformations such as filter and new field calculation.",
5458          "items": {
5459            "$ref": "#/definitions/Transform"
5460          },
5461          "type": "array"
5462        },
5463        "view": {
5464          "$ref": "#/definitions/ViewBackground",
5465          "description": "An object defining the view background's fill and stroke.\n\n__Default value:__ none (transparent)"
5466        },
5467        "width": {
5468          "description": "The width of a visualization.\n\n__Default value:__ This will be determined by the following rules:\n\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its x-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For x-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the width is [determined by the range step, paddings, and the cardinality of the field mapped to x-channel](https://vega.github.io/vega-lite/docs/scale.html#band).   Otherwise, if the `rangeStep` is `null`, the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `x` channel, the `width` will be the value of [`config.scale.textXRangeStep`](https://vega.github.io/vega-lite/docs/size.html#default-width-and-height) for `text` mark and the value of `rangeStep` for other marks.\n\n__Note:__ For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the width of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
5469          "type": "number"
5470        }
5471      },
5472      "required": [
5473        "mark"
5474      ],
5475      "type": "object"
5476    },
5477    "VConcatSpec": {
5478      "additionalProperties": false,
5479      "description": "Base interface for a vertical concatenation specification.",
5480      "properties": {
5481        "bounds": {
5482          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
5483          "enum": [
5484            "full",
5485            "flush"
5486          ],
5487          "type": "string"
5488        },
5489        "center": {
5490          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\n__Default value:__ `false`",
5491          "type": "boolean"
5492        },
5493        "data": {
5494          "anyOf": [
5495            {
5496              "$ref": "#/definitions/Data"
5497            },
5498            {
5499              "type": "null"
5500            }
5501          ],
5502          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
5503        },
5504        "description": {
5505          "description": "Description of this mark for commenting purpose.",
5506          "type": "string"
5507        },
5508        "name": {
5509          "description": "Name of the visualization for later reference.",
5510          "type": "string"
5511        },
5512        "resolve": {
5513          "$ref": "#/definitions/Resolve",
5514          "description": "Scale, axis, and legend resolutions for view composition specifications."
5515        },
5516        "spacing": {
5517          "description": "The spacing in pixels between sub-views of the concat operator.\n\n__Default value__: `10`",
5518          "type": "number"
5519        },
5520        "title": {
5521          "anyOf": [
5522            {
5523              "type": "string"
5524            },
5525            {
5526              "$ref": "#/definitions/TitleParams"
5527            }
5528          ],
5529          "description": "Title for the plot."
5530        },
5531        "transform": {
5532          "description": "An array of data transformations such as filter and new field calculation.",
5533          "items": {
5534            "$ref": "#/definitions/Transform"
5535          },
5536          "type": "array"
5537        },
5538        "vconcat": {
5539          "description": "A list of views to be concatenated and put into a column.",
5540          "items": {
5541            "$ref": "#/definitions/Spec"
5542          },
5543          "type": "array"
5544        }
5545      },
5546      "required": [
5547        "vconcat"
5548      ],
5549      "type": "object"
5550    },
5551    "GraticuleGenerator": {
5552      "additionalProperties": false,
5553      "properties": {
5554        "graticule": {
5555          "anyOf": [
5556            {
5557              "enum": [
5558                true
5559              ],
5560              "type": "boolean"
5561            },
5562            {
5563              "$ref": "#/definitions/GraticuleParams"
5564            }
5565          ],
5566          "description": "Generate graticule GeoJSON data for geographic reference lines."
5567        },
5568        "name": {
5569          "description": "Provide a placeholder name and bind data at runtime.",
5570          "type": "string"
5571        }
5572      },
5573      "required": [
5574        "graticule"
5575      ],
5576      "type": "object"
5577    },
5578    "GraticuleParams": {
5579      "additionalProperties": false,
5580      "properties": {
5581        "extent": {
5582          "description": "Sets both the major and minor extents to the same values.",
5583          "items": {
5584            "items": {
5585              "type": "number"
5586            },
5587            "type": "array"
5588          },
5589          "type": "array"
5590        },
5591        "extentMajor": {
5592          "description": "The major extent of the graticule as a two-element array of coordinates.",
5593          "items": {
5594            "items": {
5595              "type": "number"
5596            },
5597            "type": "array"
5598          },
5599          "type": "array"
5600        },
5601        "extentMinor": {
5602          "description": "The minor extent of the graticule as a two-element array of coordinates.",
5603          "items": {
5604            "items": {
5605              "type": "number"
5606            },
5607            "type": "array"
5608          },
5609          "type": "array"
5610        },
5611        "precision": {
5612          "description": "The precision of the graticule in degrees.\n\n__Default value:__ `2.5`",
5613          "type": "number"
5614        },
5615        "step": {
5616          "description": "Sets both the major and minor step angles to the same values.",
5617          "items": {
5618            "type": "number"
5619          },
5620          "type": "array"
5621        },
5622        "stepMajor": {
5623          "description": "The major step angles of the graticule.\n\n\n__Default value:__ `[90, 360]`",
5624          "items": {
5625            "type": "number"
5626          },
5627          "type": "array"
5628        },
5629        "stepMinor": {
5630          "description": "The minor step angles of the graticule.\n\n__Default value:__ `[10, 10]`",
5631          "items": {
5632            "type": "number"
5633          },
5634          "type": "array"
5635        }
5636      },
5637      "type": "object"
5638    },
5639    "Header": {
5640      "additionalProperties": false,
5641      "description": "Headers of row / column channels for faceted plots.",
5642      "properties": {
5643        "format": {
5644          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
5645          "type": "string"
5646        },
5647        "formatType": {
5648          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
5649          "enum": [
5650            "number",
5651            "time"
5652          ],
5653          "type": "string"
5654        },
5655        "labelAlign": {
5656          "$ref": "#/definitions/Align",
5657          "description": "Horizontal text alignment of header labels."
5658        },
5659        "labelAnchor": {
5660          "$ref": "#/definitions/TitleAnchor",
5661          "description": "The anchor position for placing the labels. One of `\"start\"`, `\"middle\"`, or `\"end\"`. For example, with a label orientation of top these anchor positions map to a left-, center-, or right-aligned label."
5662        },
5663        "labelAngle": {
5664          "description": "The rotation angle of the header labels.\n\n__Default value:__ `0` for column header, `-90` for row header.",
5665          "maximum": 360,
5666          "minimum": -360,
5667          "type": "number"
5668        },
5669        "labelColor": {
5670          "$ref": "#/definitions/Color",
5671          "description": "The color of the header label, can be in hex color code or regular color name."
5672        },
5673        "labelFont": {
5674          "description": "The font of the header label.",
5675          "type": "string"
5676        },
5677        "labelFontSize": {
5678          "description": "The font size of the header label, in pixels.",
5679          "minimum": 0,
5680          "type": "number"
5681        },
5682        "labelFontStyle": {
5683          "$ref": "#/definitions/FontStyle",
5684          "description": "The font style of the header label."
5685        },
5686        "labelLimit": {
5687          "description": "The maximum length of the header label in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
5688          "type": "number"
5689        },
5690        "labelOrient": {
5691          "$ref": "#/definitions/Orient",
5692          "description": "The orientation of the header label. One of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"`."
5693        },
5694        "labelPadding": {
5695          "description": "The padding, in pixel, between facet header's label and the plot.\n\n__Default value:__ `10`",
5696          "type": "number"
5697        },
5698        "labels": {
5699          "description": "A boolean flag indicating if labels should be included as part of the header.\n\n__Default value:__ `true`.",
5700          "type": "boolean"
5701        },
5702        "title": {
5703          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
5704          "type": [
5705            "string",
5706            "null"
5707          ]
5708        },
5709        "titleAlign": {
5710          "$ref": "#/definitions/Align",
5711          "description": "Horizontal text alignment (to the anchor) of header titles."
5712        },
5713        "titleAnchor": {
5714          "$ref": "#/definitions/TitleAnchor",
5715          "description": "The anchor position for placing the title. One of `\"start\"`, `\"middle\"`, or `\"end\"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title."
5716        },
5717        "titleAngle": {
5718          "description": "The rotation angle of the header title.\n\n__Default value:__ `0`.",
5719          "maximum": 360,
5720          "minimum": -360,
5721          "type": "number"
5722        },
5723        "titleBaseline": {
5724          "$ref": "#/definitions/TextBaseline",
5725          "description": "Vertical text baseline for the header title. One of `\"top\"`, `\"bottom\"`, `\"middle\"`.\n\n__Default value:__ `\"middle\"`"
5726        },
5727        "titleColor": {
5728          "$ref": "#/definitions/Color",
5729          "description": "Color of the header title, can be in hex color code or regular color name."
5730        },
5731        "titleFont": {
5732          "description": "Font of the header title. (e.g., `\"Helvetica Neue\"`).",
5733          "type": "string"
5734        },
5735        "titleFontSize": {
5736          "description": "Font size of the header title.",
5737          "minimum": 0,
5738          "type": "number"
5739        },
5740        "titleFontStyle": {
5741          "$ref": "#/definitions/FontStyle",
5742          "description": "The font style of the header title."
5743        },
5744        "titleFontWeight": {
5745          "$ref": "#/definitions/FontWeight",
5746          "description": "Font weight of the header title.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
5747        },
5748        "titleLimit": {
5749          "description": "The maximum length of the header title in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
5750          "type": "number"
5751        },
5752        "titleOrient": {
5753          "$ref": "#/definitions/Orient",
5754          "description": "The orientation of the header title. One of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"`."
5755        },
5756        "titlePadding": {
5757          "description": "The padding, in pixel, between facet header's title and the label.\n\n__Default value:__ `10`",
5758          "type": "number"
5759        }
5760      },
5761      "type": "object"
5762    },
5763    "HeaderConfig": {
5764      "additionalProperties": false,
5765      "properties": {
5766        "format": {
5767          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
5768          "type": "string"
5769        },
5770        "formatType": {
5771          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
5772          "enum": [
5773            "number",
5774            "time"
5775          ],
5776          "type": "string"
5777        },
5778        "labelAlign": {
5779          "$ref": "#/definitions/Align",
5780          "description": "Horizontal text alignment of header labels."
5781        },
5782        "labelAnchor": {
5783          "$ref": "#/definitions/TitleAnchor",
5784          "description": "The anchor position for placing the labels. One of `\"start\"`, `\"middle\"`, or `\"end\"`. For example, with a label orientation of top these anchor positions map to a left-, center-, or right-aligned label."
5785        },
5786        "labelAngle": {
5787          "description": "The rotation angle of the header labels.\n\n__Default value:__ `0` for column header, `-90` for row header.",
5788          "maximum": 360,
5789          "minimum": -360,
5790          "type": "number"
5791        },
5792        "labelColor": {
5793          "$ref": "#/definitions/Color",
5794          "description": "The color of the header label, can be in hex color code or regular color name."
5795        },
5796        "labelFont": {
5797          "description": "The font of the header label.",
5798          "type": "string"
5799        },
5800        "labelFontSize": {
5801          "description": "The font size of the header label, in pixels.",
5802          "minimum": 0,
5803          "type": "number"
5804        },
5805        "labelFontStyle": {
5806          "$ref": "#/definitions/FontStyle",
5807          "description": "The font style of the header label."
5808        },
5809        "labelLimit": {
5810          "description": "The maximum length of the header label in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
5811          "type": "number"
5812        },
5813        "labelOrient": {
5814          "$ref": "#/definitions/Orient",
5815          "description": "The orientation of the header label. One of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"`."
5816        },
5817        "labelPadding": {
5818          "description": "The padding, in pixel, between facet header's label and the plot.\n\n__Default value:__ `10`",
5819          "type": "number"
5820        },
5821        "labels": {
5822          "description": "A boolean flag indicating if labels should be included as part of the header.\n\n__Default value:__ `true`.",
5823          "type": "boolean"
5824        },
5825        "shortTimeLabels": {
5826          "description": "Whether month names and weekday names should be abbreviated.\n\n__Default value:__  `false`",
5827          "type": "boolean"
5828        },
5829        "title": {
5830          "description": "Set to null to disable title for the axis, legend, or header.",
5831          "type": "null"
5832        },
5833        "titleAlign": {
5834          "$ref": "#/definitions/Align",
5835          "description": "Horizontal text alignment (to the anchor) of header titles."
5836        },
5837        "titleAnchor": {
5838          "$ref": "#/definitions/TitleAnchor",
5839          "description": "The anchor position for placing the title. One of `\"start\"`, `\"middle\"`, or `\"end\"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title."
5840        },
5841        "titleAngle": {
5842          "description": "The rotation angle of the header title.\n\n__Default value:__ `0`.",
5843          "maximum": 360,
5844          "minimum": -360,
5845          "type": "number"
5846        },
5847        "titleBaseline": {
5848          "$ref": "#/definitions/TextBaseline",
5849          "description": "Vertical text baseline for the header title. One of `\"top\"`, `\"bottom\"`, `\"middle\"`.\n\n__Default value:__ `\"middle\"`"
5850        },
5851        "titleColor": {
5852          "$ref": "#/definitions/Color",
5853          "description": "Color of the header title, can be in hex color code or regular color name."
5854        },
5855        "titleFont": {
5856          "description": "Font of the header title. (e.g., `\"Helvetica Neue\"`).",
5857          "type": "string"
5858        },
5859        "titleFontSize": {
5860          "description": "Font size of the header title.",
5861          "minimum": 0,
5862          "type": "number"
5863        },
5864        "titleFontStyle": {
5865          "$ref": "#/definitions/FontStyle",
5866          "description": "The font style of the header title."
5867        },
5868        "titleFontWeight": {
5869          "$ref": "#/definitions/FontWeight",
5870          "description": "Font weight of the header title.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
5871        },
5872        "titleLimit": {
5873          "description": "The maximum length of the header title in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
5874          "type": "number"
5875        },
5876        "titleOrient": {
5877          "$ref": "#/definitions/Orient",
5878          "description": "The orientation of the header title. One of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"`."
5879        },
5880        "titlePadding": {
5881          "description": "The padding, in pixel, between facet header's title and the label.\n\n__Default value:__ `10`",
5882          "type": "number"
5883        }
5884      },
5885      "type": "object"
5886    },
5887    "HexColor": {
5888      "format": "color-hex",
5889      "type": "string"
5890    },
5891    "ImputeMethod": {
5892      "enum": [
5893        "value",
5894        "median",
5895        "max",
5896        "min",
5897        "mean"
5898      ],
5899      "type": "string"
5900    },
5901    "ImputeParams": {
5902      "additionalProperties": false,
5903      "properties": {
5904        "frame": {
5905          "description": "A frame specification as a two-element array used to control the window over which the specified method is applied. The array entries should either be a number indicating the offset from the current data object, or null to indicate unbounded rows preceding or following the current data object.  For example, the value `[-5, 5]` indicates that the window should include five objects preceding and five objects following the current object.\n\n__Default value:__:  `[null, null]` indicating that the window includes all objects.",
5906          "items": {
5907            "type": [
5908              "null",
5909              "number"
5910            ]
5911          },
5912          "type": "array"
5913        },
5914        "keyvals": {
5915          "anyOf": [
5916            {
5917              "items": {
5918              },
5919              "type": "array"
5920            },
5921            {
5922              "$ref": "#/definitions/ImputeSequence"
5923            }
5924          ],
5925          "description": "Defines the key values that should be considered for imputation.\nAn array of key values or an object defining a [number sequence](https://vega.github.io/vega-lite/docs/impute.html#sequence-def).\n\nIf provided, this will be used in addition to the key values observed within the input data.  If not provided, the values will be derived from all unique values of the `key` field. For `impute` in `encoding`, the key field is the x-field if the y-field is imputed, or vice versa.\n\nIf there is no impute grouping, this property _must_ be specified."
5926        },
5927        "method": {
5928          "$ref": "#/definitions/ImputeMethod",
5929          "description": "The imputation method to use for the field value of imputed data objects.\nOne of `value`, `mean`, `median`, `max` or `min`.\n\n__Default value:__  `\"value\"`"
5930        },
5931        "value": {
5932          "description": "The field value to use when the imputation `method` is `\"value\"`."
5933        }
5934      },
5935      "type": "object"
5936    },
5937    "ImputeSequence": {
5938      "additionalProperties": false,
5939      "properties": {
5940        "start": {
5941          "description": "The starting value of the sequence.\n__Default value:__ `0`",
5942          "type": "number"
5943        },
5944        "step": {
5945          "description": "The step value between sequence entries.\n__Default value:__ `1` or `-1` if `stop < start`",
5946          "type": "number"
5947        },
5948        "stop": {
5949          "description": "The ending value(exclusive) of the sequence.",
5950          "type": "number"
5951        }
5952      },
5953      "required": [
5954        "stop"
5955      ],
5956      "type": "object"
5957    },
5958    "ImputeTransform": {
5959      "additionalProperties": false,
5960      "properties": {
5961        "frame": {
5962          "description": "A frame specification as a two-element array used to control the window over which the specified method is applied. The array entries should either be a number indicating the offset from the current data object, or null to indicate unbounded rows preceding or following the current data object.  For example, the value `[-5, 5]` indicates that the window should include five objects preceding and five objects following the current object.\n\n__Default value:__:  `[null, null]` indicating that the window includes all objects.",
5963          "items": {
5964            "type": [
5965              "null",
5966              "number"
5967            ]
5968          },
5969          "type": "array"
5970        },
5971        "groupby": {
5972          "description": "An optional array of fields by which to group the values.\nImputation will then be performed on a per-group basis.",
5973          "items": {
5974            "$ref": "#/definitions/FieldName"
5975          },
5976          "type": "array"
5977        },
5978        "impute": {
5979          "$ref": "#/definitions/FieldName",
5980          "description": "The data field for which the missing values should be imputed."
5981        },
5982        "key": {
5983          "$ref": "#/definitions/FieldName",
5984          "description": "A key field that uniquely identifies data objects within a group.\nMissing key values (those occurring in the data but not in the current group) will be imputed."
5985        },
5986        "keyvals": {
5987          "anyOf": [
5988            {
5989              "items": {
5990              },
5991              "type": "array"
5992            },
5993            {
5994              "$ref": "#/definitions/ImputeSequence"
5995            }
5996          ],
5997          "description": "Defines the key values that should be considered for imputation.\nAn array of key values or an object defining a [number sequence](https://vega.github.io/vega-lite/docs/impute.html#sequence-def).\n\nIf provided, this will be used in addition to the key values observed within the input data.  If not provided, the values will be derived from all unique values of the `key` field. For `impute` in `encoding`, the key field is the x-field if the y-field is imputed, or vice versa.\n\nIf there is no impute grouping, this property _must_ be specified."
5998        },
5999        "method": {
6000          "$ref": "#/definitions/ImputeMethod",
6001          "description": "The imputation method to use for the field value of imputed data objects.\nOne of `value`, `mean`, `median`, `max` or `min`.\n\n__Default value:__  `\"value\"`"
6002        },
6003        "value": {
6004          "description": "The field value to use when the imputation `method` is `\"value\"`."
6005        }
6006      },
6007      "required": [
6008        "impute",
6009        "key"
6010      ],
6011      "type": "object"
6012    },
6013    "InlineData": {
6014      "additionalProperties": false,
6015      "properties": {
6016        "format": {
6017          "$ref": "#/definitions/DataFormat",
6018          "description": "An object that specifies the format for parsing the data."
6019        },
6020        "name": {
6021          "description": "Provide a placeholder name and bind data at runtime.",
6022          "type": "string"
6023        },
6024        "values": {
6025          "$ref": "#/definitions/InlineDataset",
6026          "description": "The full data set, included inline. This can be an array of objects or primitive values, an object, or a string.\nArrays of primitive values are ingested as objects with a `data` property. Strings are parsed according to the specified format type."
6027        }
6028      },
6029      "required": [
6030        "values"
6031      ],
6032      "type": "object"
6033    },
6034    "InlineDataset": {
6035      "anyOf": [
6036        {
6037          "items": {
6038            "type": "number"
6039          },
6040          "type": "array"
6041        },
6042        {
6043          "items": {
6044            "type": "string"
6045          },
6046          "type": "array"
6047        },
6048        {
6049          "items": {
6050            "type": "boolean"
6051          },
6052          "type": "array"
6053        },
6054        {
6055          "items": {
6056            "type": "object"
6057          },
6058          "type": "array"
6059        },
6060        {
6061          "type": "string"
6062        },
6063        {
6064          "type": "object"
6065        }
6066      ]
6067    },
6068    "InputBinding": {
6069      "additionalProperties": false,
6070      "properties": {
6071        "autocomplete": {
6072          "type": "string"
6073        },
6074        "debounce": {
6075          "type": "number"
6076        },
6077        "element": {
6078          "$ref": "#/definitions/Element"
6079        },
6080        "input": {
6081          "type": "string"
6082        },
6083        "name": {
6084          "type": "string"
6085        },
6086        "placeholder": {
6087          "type": "string"
6088        },
6089        "type": {
6090          "type": "string"
6091        }
6092      },
6093      "type": "object"
6094    },
6095    "Interpolate": {
6096      "enum": [
6097        "linear",
6098        "linear-closed",
6099        "step",
6100        "step-before",
6101        "step-after",
6102        "basis",
6103        "basis-open",
6104        "basis-closed",
6105        "cardinal",
6106        "cardinal-open",
6107        "cardinal-closed",
6108        "bundle",
6109        "monotone"
6110      ],
6111      "type": "string"
6112    },
6113    "IntervalSelection": {
6114      "additionalProperties": false,
6115      "properties": {
6116        "bind": {
6117          "description": "Establishes a two-way binding between the interval selection and the scales\nused within the same view. This allows a user to interactively pan and\nzoom the view.\n\n__See also:__ [`bind`](https://vega.github.io/vega-lite/docs/bind.html) documentation.",
6118          "enum": [
6119            "scales"
6120          ],
6121          "type": "string"
6122        },
6123        "clear": {
6124          "anyOf": [
6125            {
6126              "$ref": "#/definitions/EventStream"
6127            },
6128            {
6129              "type": "boolean"
6130            }
6131          ],
6132          "description": "Clears the selection, emptying it of all values. Can be an\n[EventStream](https://vega.github.io/vega/docs/event-streams/) or `false` to disable.\n\n__Default value:__ `dblclick`.\n\n__See also:__ [`clear`](https://vega.github.io/vega-lite/docs/clear.html) documentation."
6133        },
6134        "empty": {
6135          "description": "By default, `all` data values are considered to lie within an empty selection.\nWhen set to `none`, empty selections contain no data values.",
6136          "enum": [
6137            "all",
6138            "none"
6139          ],
6140          "type": "string"
6141        },
6142        "encodings": {
6143          "description": "An array of encoding channels. The corresponding data field values\nmust match for a data tuple to fall within the selection.\n\n__See also:__ [`encodings`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
6144          "items": {
6145            "$ref": "#/definitions/SingleDefUnitChannel"
6146          },
6147          "type": "array"
6148        },
6149        "fields": {
6150          "description": "An array of field names whose values must match for a data tuple to\nfall within the selection.\n\n__See also:__ [`fields`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
6151          "items": {
6152            "$ref": "#/definitions/FieldName"
6153          },
6154          "type": "array"
6155        },
6156        "init": {
6157          "$ref": "#/definitions/SelectionInitIntervalMapping",
6158          "description": "Initialize the selection with a mapping between [projected channels or field names](https://vega.github.io/vega-lite/docs/project.html) and arrays of\ninitial values.\n\n__See also:__ [`init`](https://vega.github.io/vega-lite/docs/init.html) documentation."
6159        },
6160        "mark": {
6161          "$ref": "#/definitions/BrushConfig",
6162          "description": "An interval selection also adds a rectangle mark to depict the\nextents of the interval. The `mark` property can be used to customize the\nappearance of the mark.\n\n__See also:__ [`mark`](https://vega.github.io/vega-lite/docs/selection-mark.html) documentation."
6163        },
6164        "on": {
6165          "$ref": "#/definitions/EventStream",
6166          "description": "A [Vega event stream](https://vega.github.io/vega/docs/event-streams/) (object or selector) that triggers the selection.\nFor interval selections, the event stream must specify a [start and end](https://vega.github.io/vega/docs/event-streams/#between-filters)."
6167        },
6168        "resolve": {
6169          "$ref": "#/definitions/SelectionResolution",
6170          "description": "With layered and multi-view displays, a strategy that determines how\nselections' data queries are resolved when applied in a filter transform,\nconditional encoding rule, or scale domain.\n\n__See also:__ [`resolve`](https://vega.github.io/vega-lite/docs/selection-resolve.html) documentation."
6171        },
6172        "translate": {
6173          "description": "When truthy, allows a user to interactively move an interval selection\nback-and-forth. Can be `true`, `false` (to disable panning), or a\n[Vega event stream definition](https://vega.github.io/vega/docs/event-streams/)\nwhich must include a start and end event to trigger continuous panning.\n\n__Default value:__ `true`, which corresponds to\n`[mousedown, window:mouseup] > window:mousemove!` which corresponds to\nclicks and dragging within an interval selection to reposition it.\n\n__See also:__ [`translate`](https://vega.github.io/vega-lite/docs/translate.html) documentation.",
6174          "type": [
6175            "string",
6176            "boolean"
6177          ]
6178        },
6179        "type": {
6180          "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports three selection types:\n\n- `single` -- to select a single discrete data value on `click`.\n- `multi` -- to select multiple discrete data value; the first value is selected on `click` and additional values toggled on shift-`click`.\n- `interval` -- to select a continuous range of data values on `drag`.",
6181          "enum": [
6182            "interval"
6183          ],
6184          "type": "string"
6185        },
6186        "zoom": {
6187          "description": "When truthy, allows a user to interactively resize an interval selection.\nCan be `true`, `false` (to disable zooming), or a [Vega event stream\ndefinition](https://vega.github.io/vega/docs/event-streams/). Currently,\nonly `wheel` events are supported.\n\n__Default value:__ `true`, which corresponds to `wheel!`.\n\n__See also:__ [`zoom`](https://vega.github.io/vega-lite/docs/zoom.html) documentation.",
6188          "type": [
6189            "string",
6190            "boolean"
6191          ]
6192        }
6193      },
6194      "required": [
6195        "type"
6196      ],
6197      "type": "object"
6198    },
6199    "IntervalSelectionConfig": {
6200      "additionalProperties": false,
6201      "properties": {
6202        "bind": {
6203          "description": "Establishes a two-way binding between the interval selection and the scales\nused within the same view. This allows a user to interactively pan and\nzoom the view.\n\n__See also:__ [`bind`](https://vega.github.io/vega-lite/docs/bind.html) documentation.",
6204          "enum": [
6205            "scales"
6206          ],
6207          "type": "string"
6208        },
6209        "clear": {
6210          "anyOf": [
6211            {
6212              "$ref": "#/definitions/EventStream"
6213            },
6214            {
6215              "type": "boolean"
6216            }
6217          ],
6218          "description": "Clears the selection, emptying it of all values. Can be an\n[EventStream](https://vega.github.io/vega/docs/event-streams/) or `false` to disable.\n\n__Default value:__ `dblclick`.\n\n__See also:__ [`clear`](https://vega.github.io/vega-lite/docs/clear.html) documentation."
6219        },
6220        "empty": {
6221          "description": "By default, `all` data values are considered to lie within an empty selection.\nWhen set to `none`, empty selections contain no data values.",
6222          "enum": [
6223            "all",
6224            "none"
6225          ],
6226          "type": "string"
6227        },
6228        "encodings": {
6229          "description": "An array of encoding channels. The corresponding data field values\nmust match for a data tuple to fall within the selection.\n\n__See also:__ [`encodings`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
6230          "items": {
6231            "$ref": "#/definitions/SingleDefUnitChannel"
6232          },
6233          "type": "array"
6234        },
6235        "fields": {
6236          "description": "An array of field names whose values must match for a data tuple to\nfall within the selection.\n\n__See also:__ [`fields`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
6237          "items": {
6238            "$ref": "#/definitions/FieldName"
6239          },
6240          "type": "array"
6241        },
6242        "init": {
6243          "$ref": "#/definitions/SelectionInitIntervalMapping",
6244          "description": "Initialize the selection with a mapping between [projected channels or field names](https://vega.github.io/vega-lite/docs/project.html) and arrays of\ninitial values.\n\n__See also:__ [`init`](https://vega.github.io/vega-lite/docs/init.html) documentation."
6245        },
6246        "mark": {
6247          "$ref": "#/definitions/BrushConfig",
6248          "description": "An interval selection also adds a rectangle mark to depict the\nextents of the interval. The `mark` property can be used to customize the\nappearance of the mark.\n\n__See also:__ [`mark`](https://vega.github.io/vega-lite/docs/selection-mark.html) documentation."
6249        },
6250        "on": {
6251          "$ref": "#/definitions/EventStream",
6252          "description": "A [Vega event stream](https://vega.github.io/vega/docs/event-streams/) (object or selector) that triggers the selection.\nFor interval selections, the event stream must specify a [start and end](https://vega.github.io/vega/docs/event-streams/#between-filters)."
6253        },
6254        "resolve": {
6255          "$ref": "#/definitions/SelectionResolution",
6256          "description": "With layered and multi-view displays, a strategy that determines how\nselections' data queries are resolved when applied in a filter transform,\nconditional encoding rule, or scale domain.\n\n__See also:__ [`resolve`](https://vega.github.io/vega-lite/docs/selection-resolve.html) documentation."
6257        },
6258        "translate": {
6259          "description": "When truthy, allows a user to interactively move an interval selection\nback-and-forth. Can be `true`, `false` (to disable panning), or a\n[Vega event stream definition](https://vega.github.io/vega/docs/event-streams/)\nwhich must include a start and end event to trigger continuous panning.\n\n__Default value:__ `true`, which corresponds to\n`[mousedown, window:mouseup] > window:mousemove!` which corresponds to\nclicks and dragging within an interval selection to reposition it.\n\n__See also:__ [`translate`](https://vega.github.io/vega-lite/docs/translate.html) documentation.",
6260          "type": [
6261            "string",
6262            "boolean"
6263          ]
6264        },
6265        "zoom": {
6266          "description": "When truthy, allows a user to interactively resize an interval selection.\nCan be `true`, `false` (to disable zooming), or a [Vega event stream\ndefinition](https://vega.github.io/vega/docs/event-streams/). Currently,\nonly `wheel` events are supported.\n\n__Default value:__ `true`, which corresponds to `wheel!`.\n\n__See also:__ [`zoom`](https://vega.github.io/vega-lite/docs/zoom.html) documentation.",
6267          "type": [
6268            "string",
6269            "boolean"
6270          ]
6271        }
6272      },
6273      "type": "object"
6274    },
6275    "JoinAggregateFieldDef": {
6276      "additionalProperties": false,
6277      "properties": {
6278        "as": {
6279          "$ref": "#/definitions/FieldName",
6280          "description": "The output name for the join aggregate operation."
6281        },
6282        "field": {
6283          "$ref": "#/definitions/FieldName",
6284          "description": "The data field for which to compute the aggregate function. This can be omitted for functions that do not operate over a field such as `count`."
6285        },
6286        "op": {
6287          "$ref": "#/definitions/AggregateOp",
6288          "description": "The aggregation operation to apply (e.g., sum, average or count). See the list of all supported operations [here](https://vega.github.io/vega-lite/docs/aggregate.html#ops)."
6289        }
6290      },
6291      "required": [
6292        "op",
6293        "as"
6294      ],
6295      "type": "object"
6296    },
6297    "JoinAggregateTransform": {
6298      "additionalProperties": false,
6299      "properties": {
6300        "groupby": {
6301          "description": "The data fields for partitioning the data objects into separate groups. If unspecified, all data points will be in a single group.",
6302          "items": {
6303            "$ref": "#/definitions/FieldName"
6304          },
6305          "type": "array"
6306        },
6307        "joinaggregate": {
6308          "description": "The definition of the fields in the join aggregate, and what calculations to use.",
6309          "items": {
6310            "$ref": "#/definitions/JoinAggregateFieldDef"
6311          },
6312          "type": "array"
6313        }
6314      },
6315      "required": [
6316        "joinaggregate"
6317      ],
6318      "type": "object"
6319    },
6320    "JsonDataFormat": {
6321      "additionalProperties": false,
6322      "properties": {
6323        "parse": {
6324          "anyOf": [
6325            {
6326              "$ref": "#/definitions/Parse"
6327            },
6328            {
6329              "type": "null"
6330            }
6331          ],
6332          "description": "If set to `null`, disable type inference based on the spec and only use type inference based on the data.\nAlternatively, a parsing directive object can be provided for explicit data types. Each property of the object corresponds to a field name, and the value to the desired data type (one of `\"number\"`, `\"boolean\"`, `\"date\"`, or null (do not parse the field)).\nFor example, `\"parse\": {\"modified_on\": \"date\"}` parses the `modified_on` field in each input record a Date value.\n\nFor `\"date\"`, we parse data based using Javascript's [`Date.parse()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\nFor Specific date formats can be provided (e.g., `{foo: \"date:'%m%d%Y'\"}`), using the [d3-time-format syntax](https://github.com/d3/d3-time-format#locale_format). UTC date format parsing is supported similarly (e.g., `{foo: \"utc:'%m%d%Y'\"}`). See more about [UTC time](https://vega.github.io/vega-lite/docs/timeunit.html#utc)"
6333        },
6334        "property": {
6335          "description": "The JSON property containing the desired data.\nThis parameter can be used when the loaded JSON file may have surrounding structure or meta-data.\nFor example `\"property\": \"values.features\"` is equivalent to retrieving `json.values.features`\nfrom the loaded JSON object.",
6336          "type": "string"
6337        },
6338        "type": {
6339          "description": "Type of input data: `\"json\"`, `\"csv\"`, `\"tsv\"`, `\"dsv\"`.\n\n__Default value:__  The default format type is determined by the extension of the file URL.\nIf no extension is detected, `\"json\"` will be used by default.",
6340          "enum": [
6341            "json"
6342          ],
6343          "type": "string"
6344        }
6345      },
6346      "type": "object"
6347    },
6348    "LabelOverlap": {
6349      "anyOf": [
6350        {
6351          "type": "boolean"
6352        },
6353        {
6354          "enum": [
6355            "parity"
6356          ],
6357          "type": "string"
6358        },
6359        {
6360          "enum": [
6361            "greedy"
6362          ],
6363          "type": "string"
6364        }
6365      ]
6366    },
6367    "LatLongFieldDef": {
6368      "additionalProperties": false,
6369      "properties": {
6370        "aggregate": {
6371          "$ref": "#/definitions/Aggregate",
6372          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
6373        },
6374        "bin": {
6375          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation.",
6376          "type": "null"
6377        },
6378        "field": {
6379          "$ref": "#/definitions/Field",
6380          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
6381        },
6382        "timeUnit": {
6383          "$ref": "#/definitions/TimeUnit",
6384          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
6385        },
6386        "title": {
6387          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
6388          "type": [
6389            "string",
6390            "null"
6391          ]
6392        },
6393        "type": {
6394          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation.",
6395          "enum": [
6396            "quantitative"
6397          ],
6398          "type": "string"
6399        }
6400      },
6401      "type": "object"
6402    },
6403    "LayerSpec": {
6404      "additionalProperties": false,
6405      "description": "A full layered plot specification, which may contains `encoding` and `projection` properties that will be applied to underlying unit (single-view) specifications.",
6406      "properties": {
6407        "data": {
6408          "anyOf": [
6409            {
6410              "$ref": "#/definitions/Data"
6411            },
6412            {
6413              "type": "null"
6414            }
6415          ],
6416          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
6417        },
6418        "description": {
6419          "description": "Description of this mark for commenting purpose.",
6420          "type": "string"
6421        },
6422        "encoding": {
6423          "$ref": "#/definitions/Encoding",
6424          "description": "A shared key-value mapping between encoding channels and definition of fields in the underlying layers."
6425        },
6426        "height": {
6427          "description": "The height of a visualization.\n\n__Default value:__\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its y-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For y-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the height is [determined by the range step, paddings, and the cardinality of the field mapped to y-channel](https://vega.github.io/vega-lite/docs/scale.html#band). Otherwise, if the `rangeStep` is `null`, the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `y` channel, the `height` will be the value of `rangeStep`.\n\n__Note__: For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the height of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
6428          "type": "number"
6429        },
6430        "layer": {
6431          "description": "Layer or single view specifications to be layered.\n\n__Note__: Specifications inside `layer` cannot use `row` and `column` channels as layering facet specifications is not allowed. Instead, use the [facet operator](https://vega.github.io/vega-lite/docs/facet.html) and place a layer inside a facet.",
6432          "items": {
6433            "anyOf": [
6434              {
6435                "$ref": "#/definitions/LayerSpec"
6436              },
6437              {
6438                "$ref": "#/definitions/UnitSpec"
6439              }
6440            ]
6441          },
6442          "type": "array"
6443        },
6444        "name": {
6445          "description": "Name of the visualization for later reference.",
6446          "type": "string"
6447        },
6448        "projection": {
6449          "$ref": "#/definitions/Projection",
6450          "description": "An object defining properties of the geographic projection shared by underlying layers."
6451        },
6452        "resolve": {
6453          "$ref": "#/definitions/Resolve",
6454          "description": "Scale, axis, and legend resolutions for view composition specifications."
6455        },
6456        "title": {
6457          "anyOf": [
6458            {
6459              "type": "string"
6460            },
6461            {
6462              "$ref": "#/definitions/TitleParams"
6463            }
6464          ],
6465          "description": "Title for the plot."
6466        },
6467        "transform": {
6468          "description": "An array of data transformations such as filter and new field calculation.",
6469          "items": {
6470            "$ref": "#/definitions/Transform"
6471          },
6472          "type": "array"
6473        },
6474        "view": {
6475          "$ref": "#/definitions/ViewBackground",
6476          "description": "An object defining the view background's fill and stroke.\n\n__Default value:__ none (transparent)"
6477        },
6478        "width": {
6479          "description": "The width of a visualization.\n\n__Default value:__ This will be determined by the following rules:\n\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its x-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For x-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the width is [determined by the range step, paddings, and the cardinality of the field mapped to x-channel](https://vega.github.io/vega-lite/docs/scale.html#band).   Otherwise, if the `rangeStep` is `null`, the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `x` channel, the `width` will be the value of [`config.scale.textXRangeStep`](https://vega.github.io/vega-lite/docs/size.html#default-width-and-height) for `text` mark and the value of `rangeStep` for other marks.\n\n__Note:__ For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the width of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
6480          "type": "number"
6481        }
6482      },
6483      "required": [
6484        "layer"
6485      ],
6486      "type": "object"
6487    },
6488    "LayoutAlign": {
6489      "enum": [
6490        "all",
6491        "each",
6492        "none"
6493      ],
6494      "type": "string"
6495    },
6496    "LayoutBounds": {
6497      "anyOf": [
6498        {
6499          "enum": [
6500            "full"
6501          ],
6502          "type": "string"
6503        },
6504        {
6505          "enum": [
6506            "flush"
6507          ],
6508          "type": "string"
6509        },
6510        {
6511          "$ref": "#/definitions/SignalRef"
6512        }
6513      ]
6514    },
6515    "Legend": {
6516      "additionalProperties": false,
6517      "description": "Properties of a legend or boolean flag for determining whether to show it.",
6518      "properties": {
6519        "clipHeight": {
6520          "description": "The height in pixels to clip symbol legend entries and limit their size.",
6521          "type": "number"
6522        },
6523        "columnPadding": {
6524          "description": "The horizontal padding in pixels between symbol legend entries.\n\n__Default value:__ `10`.",
6525          "type": "number"
6526        },
6527        "columns": {
6528          "description": "The number of columns in which to arrange symbol legend entries. A value of `0` or lower indicates a single row with one column per entry.",
6529          "type": "number"
6530        },
6531        "cornerRadius": {
6532          "description": "Corner radius for the full legend.",
6533          "type": "number"
6534        },
6535        "direction": {
6536          "$ref": "#/definitions/Orientation",
6537          "description": "The direction of the legend, one of `\"vertical\"` or `\"horizontal\"`.\n\n__Default value:__\n- For top-/bottom-`orient`ed legends, `\"horizontal\"`\n- For left-/right-`orient`ed legends, `\"vertical\"`\n- For top/bottom-left/right-`orient`ed legends, `\"horizontal\"` for gradient legends and `\"vertical\"` for symbol legends."
6538        },
6539        "fillColor": {
6540          "$ref": "#/definitions/Color",
6541          "description": "Background fill color for the full legend."
6542        },
6543        "format": {
6544          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
6545          "type": "string"
6546        },
6547        "formatType": {
6548          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
6549          "enum": [
6550            "number",
6551            "time"
6552          ],
6553          "type": "string"
6554        },
6555        "gradientLength": {
6556          "description": "The length in pixels of the primary axis of a color gradient. This value corresponds to the height of a vertical gradient or the width of a horizontal gradient.\n\n__Default value:__ `200`.",
6557          "minimum": 0,
6558          "type": "number"
6559        },
6560        "gradientOpacity": {
6561          "description": "Opacity of the color gradient.",
6562          "type": "number"
6563        },
6564        "gradientStrokeColor": {
6565          "$ref": "#/definitions/Color",
6566          "description": "The color of the gradient stroke, can be in hex color code or regular color name.\n\n__Default value:__ `\"lightGray\"`."
6567        },
6568        "gradientStrokeWidth": {
6569          "description": "The width of the gradient stroke, in pixels.\n\n__Default value:__ `0`.",
6570          "minimum": 0,
6571          "type": "number"
6572        },
6573        "gradientThickness": {
6574          "description": "The thickness in pixels of the color gradient. This value corresponds to the width of a vertical gradient or the height of a horizontal gradient.\n\n__Default value:__ `16`.",
6575          "minimum": 0,
6576          "type": "number"
6577        },
6578        "gridAlign": {
6579          "$ref": "#/definitions/LayoutAlign",
6580          "description": "The alignment to apply to symbol legends rows and columns. The supported string values are `\"all\"`, `\"each\"` (the default), and `none`. For more information, see the [grid layout documentation](https://vega.github.io/vega/docs/layout).\n\n__Default value:__ `\"each\"`."
6581        },
6582        "labelAlign": {
6583          "$ref": "#/definitions/Align",
6584          "description": "The alignment of the legend label, can be left, center, or right."
6585        },
6586        "labelBaseline": {
6587          "$ref": "#/definitions/TextBaseline",
6588          "description": "The position of the baseline of legend label, can be `\"top\"`, `\"middle\"`, `\"bottom\"`, or `\"alphabetic\"`.\n\n__Default value:__ `\"middle\"`."
6589        },
6590        "labelColor": {
6591          "$ref": "#/definitions/Color",
6592          "description": "The color of the legend label, can be in hex color code or regular color name."
6593        },
6594        "labelFont": {
6595          "description": "The font of the legend label.",
6596          "type": "string"
6597        },
6598        "labelFontSize": {
6599          "description": "The font size of legend label.\n\n__Default value:__ `10`.",
6600          "minimum": 0,
6601          "type": "number"
6602        },
6603        "labelFontStyle": {
6604          "$ref": "#/definitions/FontStyle",
6605          "description": "The font style of legend label."
6606        },
6607        "labelFontWeight": {
6608          "$ref": "#/definitions/FontWeight",
6609          "description": "The font weight of legend label."
6610        },
6611        "labelLimit": {
6612          "description": "Maximum allowed pixel width of legend tick labels.\n\n__Default value:__ `160`.",
6613          "type": "number"
6614        },
6615        "labelOffset": {
6616          "description": "The offset of the legend label.",
6617          "type": "number"
6618        },
6619        "labelOpacity": {
6620          "description": "Opacity of labels.",
6621          "type": "number"
6622        },
6623        "labelOverlap": {
6624          "$ref": "#/definitions/LabelOverlap",
6625          "description": "The strategy to use for resolving overlap of labels in gradient legends. If `false`, no overlap reduction is attempted. If set to `true` (default) or `\"parity\"`, a strategy of removing every other label is used. If set to `\"greedy\"`, a linear scan of the labels is performed, removing any label that overlaps with the last visible label (this often works better for log-scaled axes).\n\n__Default value:__ `true`."
6626        },
6627        "labelPadding": {
6628          "description": "Padding in pixels between the legend and legend labels.",
6629          "type": "number"
6630        },
6631        "labelSeparation": {
6632          "description": "The minimum separation that must be between label bounding boxes for them to be considered non-overlapping (default `0`). This property is ignored if *labelOverlap* resolution is not enabled.",
6633          "type": "number"
6634        },
6635        "legendX": {
6636          "description": "Custom x-position for legend with orient \"none\".",
6637          "type": "number"
6638        },
6639        "legendY": {
6640          "description": "Custom y-position for legend with orient \"none\".",
6641          "type": "number"
6642        },
6643        "offset": {
6644          "description": "The offset in pixels by which to displace the legend from the data rectangle and axes.\n\n__Default value:__ `18`.",
6645          "type": "number"
6646        },
6647        "orient": {
6648          "$ref": "#/definitions/LegendOrient",
6649          "description": "The orientation of the legend, which determines how the legend is positioned within the scene. One of `\"left\"`, `\"right\"`, `\"top\"`, `\"bottom\"`, `\"top-left\"`, `\"top-right\"`, `\"bottom-left\"`, `\"bottom-right\"`, `\"none\"`.\n\n__Default value:__ `\"right\"`"
6650        },
6651        "padding": {
6652          "description": "The padding between the border and content of the legend group.\n\n__Default value:__ `0`.",
6653          "type": "number"
6654        },
6655        "rowPadding": {
6656          "description": "The vertical padding in pixels between symbol legend entries.\n\n__Default value:__ `2`.",
6657          "type": "number"
6658        },
6659        "strokeColor": {
6660          "$ref": "#/definitions/Color",
6661          "description": "Border stroke color for the full legend."
6662        },
6663        "symbolDash": {
6664          "description": "An array of alternating [stroke, space] lengths for dashed symbol strokes.",
6665          "items": {
6666            "type": "number"
6667          },
6668          "type": "array"
6669        },
6670        "symbolDashOffset": {
6671          "description": "The pixel offset at which to start drawing with the symbol stroke dash array.",
6672          "type": "number"
6673        },
6674        "symbolFillColor": {
6675          "$ref": "#/definitions/Color",
6676          "description": "The color of the legend symbol,"
6677        },
6678        "symbolOffset": {
6679          "description": "Horizontal pixel offset for legend symbols.\n\n__Default value:__ `0`.",
6680          "type": "number"
6681        },
6682        "symbolOpacity": {
6683          "description": "Opacity of the legend symbols.",
6684          "type": "number"
6685        },
6686        "symbolSize": {
6687          "description": "The size of the legend symbol, in pixels.\n\n__Default value:__ `100`.",
6688          "minimum": 0,
6689          "type": "number"
6690        },
6691        "symbolStrokeColor": {
6692          "$ref": "#/definitions/Color",
6693          "description": "Stroke color for legend symbols."
6694        },
6695        "symbolStrokeWidth": {
6696          "description": "The width of the symbol's stroke.\n\n__Default value:__ `1.5`.",
6697          "minimum": 0,
6698          "type": "number"
6699        },
6700        "symbolType": {
6701          "$ref": "#/definitions/SymbolShape",
6702          "description": "The symbol shape. One of the plotting shapes `circle` (default), `square`, `cross`, `diamond`, `triangle-up`, `triangle-down`, `triangle-right`, or `triangle-left`, the line symbol `stroke`, or one of the centered directional shapes `arrow`, `wedge`, or `triangle`. Alternatively, a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) can be provided. For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.\n\n__Default value:__ `\"circle\"`."
6703        },
6704        "tickCount": {
6705          "description": "The desired number of tick values for quantitative legends.",
6706          "type": "number"
6707        },
6708        "tickMinStep": {
6709          "description": "The minimum desired step between legend ticks, in terms of scale domain values. For example, a value of `1` indicates that ticks should not be less than 1 unit apart. If `tickMinStep` is specified, the `tickCount` value will be adjusted, if necessary, to enforce the minimum step value.\n\n__Default value__: `undefined`",
6710          "type": "number"
6711        },
6712        "title": {
6713          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
6714          "type": [
6715            "string",
6716            "null"
6717          ]
6718        },
6719        "titleAlign": {
6720          "$ref": "#/definitions/Align",
6721          "description": "Horizontal text alignment for legend titles.\n\n__Default value:__ `\"left\"`."
6722        },
6723        "titleAnchor": {
6724          "$ref": "#/definitions/TitleAnchor",
6725          "description": "Text anchor position for placing legend titles."
6726        },
6727        "titleBaseline": {
6728          "$ref": "#/definitions/TextBaseline",
6729          "description": "Vertical text baseline for legend titles.\n\n__Default value:__ `\"top\"`."
6730        },
6731        "titleColor": {
6732          "$ref": "#/definitions/Color",
6733          "description": "The color of the legend title, can be in hex color code or regular color name."
6734        },
6735        "titleFont": {
6736          "description": "The font of the legend title.",
6737          "type": "string"
6738        },
6739        "titleFontSize": {
6740          "description": "The font size of the legend title.",
6741          "type": "number"
6742        },
6743        "titleFontStyle": {
6744          "$ref": "#/definitions/FontStyle",
6745          "description": "The font style of the legend title."
6746        },
6747        "titleFontWeight": {
6748          "$ref": "#/definitions/FontWeight",
6749          "description": "The font weight of the legend title.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
6750        },
6751        "titleLimit": {
6752          "description": "Maximum allowed pixel width of legend titles.\n\n__Default value:__ `180`.",
6753          "minimum": 0,
6754          "type": "number"
6755        },
6756        "titleOpacity": {
6757          "description": "Opacity of the legend title.",
6758          "type": "number"
6759        },
6760        "titleOrient": {
6761          "$ref": "#/definitions/Orient",
6762          "description": "Orientation of the legend title."
6763        },
6764        "titlePadding": {
6765          "description": "The padding, in pixels, between title and legend.\n\n__Default value:__ `5`.",
6766          "type": "number"
6767        },
6768        "type": {
6769          "description": "The type of the legend. Use `\"symbol\"` to create a discrete legend and `\"gradient\"` for a continuous color gradient.\n\n__Default value:__ `\"gradient\"` for non-binned quantitative fields and temporal fields; `\"symbol\"` otherwise.",
6770          "enum": [
6771            "symbol",
6772            "gradient"
6773          ],
6774          "type": "string"
6775        },
6776        "values": {
6777          "description": "Explicitly set the visible legend values.",
6778          "items": {
6779            "anyOf": [
6780              {
6781                "type": "number"
6782              },
6783              {
6784                "type": "string"
6785              },
6786              {
6787                "type": "boolean"
6788              },
6789              {
6790                "$ref": "#/definitions/DateTime"
6791              }
6792            ]
6793          },
6794          "type": "array"
6795        },
6796        "zindex": {
6797          "description": "A non-negative integer indicating the z-index of the legend.\nIf zindex is 0, legend should be drawn behind all chart elements.\nTo put them in front, use zindex = 1.",
6798          "minimum": 0,
6799          "type": "number"
6800        }
6801      },
6802      "type": "object"
6803    },
6804    "LegendConfig": {
6805      "additionalProperties": false,
6806      "properties": {
6807        "clipHeight": {
6808          "description": "The height in pixels to clip symbol legend entries and limit their size.",
6809          "type": "number"
6810        },
6811        "columnPadding": {
6812          "description": "The horizontal padding in pixels between symbol legend entries.\n\n__Default value:__ `10`.",
6813          "type": "number"
6814        },
6815        "columns": {
6816          "description": "The number of columns in which to arrange symbol legend entries. A value of `0` or lower indicates a single row with one column per entry.",
6817          "type": "number"
6818        },
6819        "cornerRadius": {
6820          "description": "Corner radius for the full legend.",
6821          "type": "number"
6822        },
6823        "fillColor": {
6824          "$ref": "#/definitions/Color",
6825          "description": "Background fill color for the full legend."
6826        },
6827        "gradientDirection": {
6828          "$ref": "#/definitions/Orientation",
6829          "description": "The default direction (`\"horizontal\"` or `\"vertical\"`) for gradient legends.\n\n__Default value:__ `\"vertical\"`."
6830        },
6831        "gradientHorizontalMaxLength": {
6832          "description": "Max legend length for a horizontal gradient when `config.legend.gradientLength` is undefined.\n\n__Default value:__ `200`",
6833          "type": "number"
6834        },
6835        "gradientHorizontalMinLength": {
6836          "description": "Min legend length for a horizontal gradient when `config.legend.gradientLength` is undefined.\n\n__Default value:__ `100`",
6837          "type": "number"
6838        },
6839        "gradientLabelLimit": {
6840          "description": "The maximum allowed length in pixels of color ramp gradient labels.",
6841          "type": "number"
6842        },
6843        "gradientLabelOffset": {
6844          "description": "Vertical offset in pixels for color ramp gradient labels.\n\n__Default value:__ `2`.",
6845          "type": "number"
6846        },
6847        "gradientLength": {
6848          "description": "The length in pixels of the primary axis of a color gradient. This value corresponds to the height of a vertical gradient or the width of a horizontal gradient.\n\n__Default value:__ `200`.",
6849          "minimum": 0,
6850          "type": "number"
6851        },
6852        "gradientOpacity": {
6853          "description": "Opacity of the color gradient.",
6854          "type": "number"
6855        },
6856        "gradientStrokeColor": {
6857          "$ref": "#/definitions/Color",
6858          "description": "The color of the gradient stroke, can be in hex color code or regular color name.\n\n__Default value:__ `\"lightGray\"`."
6859        },
6860        "gradientStrokeWidth": {
6861          "description": "The width of the gradient stroke, in pixels.\n\n__Default value:__ `0`.",
6862          "minimum": 0,
6863          "type": "number"
6864        },
6865        "gradientThickness": {
6866          "description": "The thickness in pixels of the color gradient. This value corresponds to the width of a vertical gradient or the height of a horizontal gradient.\n\n__Default value:__ `16`.",
6867          "minimum": 0,
6868          "type": "number"
6869        },
6870        "gradientVerticalMaxLength": {
6871          "description": "Max legend length for a vertical gradient when `config.legend.gradientLength` is undefined.\n\n__Default value:__ `200`",
6872          "type": "number"
6873        },
6874        "gradientVerticalMinLength": {
6875          "description": "Min legend length for a vertical gradient when `config.legend.gradientLength` is undefined.\n\n__Default value:__ `100`",
6876          "type": "number"
6877        },
6878        "gridAlign": {
6879          "$ref": "#/definitions/LayoutAlign",
6880          "description": "The alignment to apply to symbol legends rows and columns. The supported string values are `\"all\"`, `\"each\"` (the default), and `none`. For more information, see the [grid layout documentation](https://vega.github.io/vega/docs/layout).\n\n__Default value:__ `\"each\"`."
6881        },
6882        "labelAlign": {
6883          "$ref": "#/definitions/Align",
6884          "description": "The alignment of the legend label, can be left, center, or right."
6885        },
6886        "labelBaseline": {
6887          "$ref": "#/definitions/TextBaseline",
6888          "description": "The position of the baseline of legend label, can be `\"top\"`, `\"middle\"`, `\"bottom\"`, or `\"alphabetic\"`.\n\n__Default value:__ `\"middle\"`."
6889        },
6890        "labelColor": {
6891          "$ref": "#/definitions/Color",
6892          "description": "The color of the legend label, can be in hex color code or regular color name."
6893        },
6894        "labelFont": {
6895          "description": "The font of the legend label.",
6896          "type": "string"
6897        },
6898        "labelFontSize": {
6899          "description": "The font size of legend label.\n\n__Default value:__ `10`.",
6900          "minimum": 0,
6901          "type": "number"
6902        },
6903        "labelFontStyle": {
6904          "$ref": "#/definitions/FontStyle",
6905          "description": "The font style of legend label."
6906        },
6907        "labelFontWeight": {
6908          "$ref": "#/definitions/FontWeight",
6909          "description": "The font weight of legend label."
6910        },
6911        "labelLimit": {
6912          "description": "Maximum allowed pixel width of legend tick labels.\n\n__Default value:__ `160`.",
6913          "type": "number"
6914        },
6915        "labelOffset": {
6916          "description": "The offset of the legend label.",
6917          "type": "number"
6918        },
6919        "labelOpacity": {
6920          "description": "Opacity of labels.",
6921          "type": "number"
6922        },
6923        "labelOverlap": {
6924          "$ref": "#/definitions/LabelOverlap",
6925          "description": "The strategy to use for resolving overlap of labels in gradient legends. If `false`, no overlap reduction is attempted. If set to `true` or `\"parity\"`, a strategy of removing every other label is used. If set to `\"greedy\"`, a linear scan of the labels is performed, removing any label that overlaps with the last visible label (this often works better for log-scaled axes).\n\n__Default value:__ `\"greedy\"` for `log scales otherwise `true`."
6926        },
6927        "labelPadding": {
6928          "description": "Padding in pixels between the legend and legend labels.",
6929          "type": "number"
6930        },
6931        "labelSeparation": {
6932          "description": "The minimum separation that must be between label bounding boxes for them to be considered non-overlapping (default `0`). This property is ignored if *labelOverlap* resolution is not enabled.",
6933          "type": "number"
6934        },
6935        "layout": {
6936          "$ref": "#/definitions/LegendLayout",
6937          "description": "Legend orient group layout parameters."
6938        },
6939        "legendX": {
6940          "description": "Custom x-position for legend with orient \"none\".",
6941          "type": "number"
6942        },
6943        "legendY": {
6944          "description": "Custom y-position for legend with orient \"none\".",
6945          "type": "number"
6946        },
6947        "offset": {
6948          "description": "The offset in pixels by which to displace the legend from the data rectangle and axes.\n\n__Default value:__ `18`.",
6949          "type": "number"
6950        },
6951        "orient": {
6952          "$ref": "#/definitions/LegendOrient",
6953          "description": "The orientation of the legend, which determines how the legend is positioned within the scene. One of \"left\", \"right\", \"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\", \"none\".\n\n__Default value:__ `\"right\"`"
6954        },
6955        "padding": {
6956          "description": "The padding between the border and content of the legend group.\n\n__Default value:__ `0`.",
6957          "type": "number"
6958        },
6959        "rowPadding": {
6960          "description": "The vertical padding in pixels between symbol legend entries.\n\n__Default value:__ `2`.",
6961          "type": "number"
6962        },
6963        "shortTimeLabels": {
6964          "description": "Whether month names and weekday names should be abbreviated.\n\n__Default value:__  `false`",
6965          "type": "boolean"
6966        },
6967        "strokeColor": {
6968          "$ref": "#/definitions/Color",
6969          "description": "Border stroke color for the full legend."
6970        },
6971        "strokeDash": {
6972          "description": "Border stroke dash pattern for the full legend.",
6973          "items": {
6974            "type": "number"
6975          },
6976          "type": "array"
6977        },
6978        "strokeWidth": {
6979          "description": "Border stroke width for the full legend.",
6980          "type": "number"
6981        },
6982        "symbolBaseFillColor": {
6983          "$ref": "#/definitions/Color",
6984          "description": "Default fill color for legend symbols. Only applied if there is no `\"fill\"` scale color encoding for the legend.\n\n__Default value:__ `\"transparent\"`."
6985        },
6986        "symbolBaseStrokeColor": {
6987          "$ref": "#/definitions/Color",
6988          "description": "Default stroke color for legend symbols. Only applied if there is no `\"fill\"` scale color encoding for the legend.\n\n__Default value:__ `\"gray\"`."
6989        },
6990        "symbolDash": {
6991          "description": "An array of alternating [stroke, space] lengths for dashed symbol strokes.",
6992          "items": {
6993            "type": "number"
6994          },
6995          "type": "array"
6996        },
6997        "symbolDashOffset": {
6998          "description": "The pixel offset at which to start drawing with the symbol stroke dash array.",
6999          "type": "number"
7000        },
7001        "symbolDirection": {
7002          "$ref": "#/definitions/Orientation",
7003          "description": "The default direction (`\"horizontal\"` or `\"vertical\"`) for symbol legends.\n\n__Default value:__ `\"vertical\"`."
7004        },
7005        "symbolFillColor": {
7006          "$ref": "#/definitions/Color",
7007          "description": "The color of the legend symbol,"
7008        },
7009        "symbolOffset": {
7010          "description": "Horizontal pixel offset for legend symbols.\n\n__Default value:__ `0`.",
7011          "type": "number"
7012        },
7013        "symbolOpacity": {
7014          "description": "Opacity of the legend symbols.",
7015          "type": "number"
7016        },
7017        "symbolSize": {
7018          "description": "The size of the legend symbol, in pixels.\n\n__Default value:__ `100`.",
7019          "minimum": 0,
7020          "type": "number"
7021        },
7022        "symbolStrokeColor": {
7023          "$ref": "#/definitions/Color",
7024          "description": "Stroke color for legend symbols."
7025        },
7026        "symbolStrokeWidth": {
7027          "description": "The width of the symbol's stroke.\n\n__Default value:__ `1.5`.",
7028          "minimum": 0,
7029          "type": "number"
7030        },
7031        "symbolType": {
7032          "$ref": "#/definitions/SymbolShape",
7033          "description": "The symbol shape. One of the plotting shapes `circle` (default), `square`, `cross`, `diamond`, `triangle-up`, `triangle-down`, `triangle-right`, or `triangle-left`, the line symbol `stroke`, or one of the centered directional shapes `arrow`, `wedge`, or `triangle`. Alternatively, a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) can be provided. For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.\n\n__Default value:__ `\"circle\"`."
7034        },
7035        "title": {
7036          "description": "Set to null to disable title for the axis, legend, or header.",
7037          "type": "null"
7038        },
7039        "titleAlign": {
7040          "$ref": "#/definitions/Align",
7041          "description": "Horizontal text alignment for legend titles.\n\n__Default value:__ `\"left\"`."
7042        },
7043        "titleAnchor": {
7044          "$ref": "#/definitions/TitleAnchor",
7045          "description": "Text anchor position for placing legend titles."
7046        },
7047        "titleBaseline": {
7048          "$ref": "#/definitions/TextBaseline",
7049          "description": "Vertical text baseline for legend titles.\n\n__Default value:__ `\"top\"`."
7050        },
7051        "titleColor": {
7052          "$ref": "#/definitions/Color",
7053          "description": "The color of the legend title, can be in hex color code or regular color name."
7054        },
7055        "titleFont": {
7056          "description": "The font of the legend title.",
7057          "type": "string"
7058        },
7059        "titleFontSize": {
7060          "description": "The font size of the legend title.",
7061          "type": "number"
7062        },
7063        "titleFontStyle": {
7064          "$ref": "#/definitions/FontStyle",
7065          "description": "The font style of the legend title."
7066        },
7067        "titleFontWeight": {
7068          "$ref": "#/definitions/FontWeight",
7069          "description": "The font weight of the legend title.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
7070        },
7071        "titleLimit": {
7072          "description": "Maximum allowed pixel width of legend titles.\n\n__Default value:__ `180`.",
7073          "minimum": 0,
7074          "type": "number"
7075        },
7076        "titleOpacity": {
7077          "description": "Opacity of the legend title.",
7078          "type": "number"
7079        },
7080        "titleOrient": {
7081          "$ref": "#/definitions/Orient",
7082          "description": "Orientation of the legend title."
7083        },
7084        "titlePadding": {
7085          "description": "The padding, in pixels, between title and legend.\n\n__Default value:__ `5`.",
7086          "type": "number"
7087        }
7088      },
7089      "type": "object"
7090    },
7091    "LegendLayout": {
7092      "additionalProperties": false,
7093      "properties": {
7094        "anchor": {
7095          "$ref": "#/definitions/TitleAnchor",
7096          "description": "The anchor point for legend orient group layout."
7097        },
7098        "bottom": {
7099          "$ref": "#/definitions/BaseLegendLayout"
7100        },
7101        "bottom-left": {
7102          "$ref": "#/definitions/BaseLegendLayout"
7103        },
7104        "bottom-right": {
7105          "$ref": "#/definitions/BaseLegendLayout"
7106        },
7107        "bounds": {
7108          "$ref": "#/definitions/LayoutBounds",
7109          "description": "The bounds calculation to use for legend orient group layout."
7110        },
7111        "center": {
7112          "anyOf": [
7113            {
7114              "type": "boolean"
7115            },
7116            {
7117              "$ref": "#/definitions/SignalRef"
7118            }
7119          ],
7120          "description": "A flag to center legends within a shared orient group."
7121        },
7122        "direction": {
7123          "anyOf": [
7124            {
7125              "$ref": "#/definitions/Orientation"
7126            },
7127            {
7128              "$ref": "#/definitions/SignalRef"
7129            }
7130          ],
7131          "description": "The layout direction for legend orient group layout."
7132        },
7133        "left": {
7134          "$ref": "#/definitions/BaseLegendLayout"
7135        },
7136        "margin": {
7137          "anyOf": [
7138            {
7139              "type": "number"
7140            },
7141            {
7142              "$ref": "#/definitions/SignalRef"
7143            }
7144          ],
7145          "description": "The pixel margin between legends within a orient group."
7146        },
7147        "offset": {
7148          "anyOf": [
7149            {
7150              "type": "number"
7151            },
7152            {
7153              "$ref": "#/definitions/SignalRef"
7154            }
7155          ],
7156          "description": "The pixel offset from the chart body for a legend orient group."
7157        },
7158        "right": {
7159          "$ref": "#/definitions/BaseLegendLayout"
7160        },
7161        "top": {
7162          "$ref": "#/definitions/BaseLegendLayout"
7163        },
7164        "top-left": {
7165          "$ref": "#/definitions/BaseLegendLayout"
7166        },
7167        "top-right": {
7168          "$ref": "#/definitions/BaseLegendLayout"
7169        }
7170      },
7171      "type": "object"
7172    },
7173    "LegendOrient": {
7174      "enum": [
7175        "none",
7176        "left",
7177        "right",
7178        "top",
7179        "bottom",
7180        "top-left",
7181        "top-right",
7182        "bottom-left",
7183        "bottom-right"
7184      ],
7185      "type": "string"
7186    },
7187    "LegendResolveMap": {
7188      "additionalProperties": false,
7189      "properties": {
7190        "color": {
7191          "$ref": "#/definitions/ResolveMode"
7192        },
7193        "fill": {
7194          "$ref": "#/definitions/ResolveMode"
7195        },
7196        "fillOpacity": {
7197          "$ref": "#/definitions/ResolveMode"
7198        },
7199        "opacity": {
7200          "$ref": "#/definitions/ResolveMode"
7201        },
7202        "shape": {
7203          "$ref": "#/definitions/ResolveMode"
7204        },
7205        "size": {
7206          "$ref": "#/definitions/ResolveMode"
7207        },
7208        "stroke": {
7209          "$ref": "#/definitions/ResolveMode"
7210        },
7211        "strokeOpacity": {
7212          "$ref": "#/definitions/ResolveMode"
7213        },
7214        "strokeWidth": {
7215          "$ref": "#/definitions/ResolveMode"
7216        }
7217      },
7218      "type": "object"
7219    },
7220    "LineConfig": {
7221      "additionalProperties": false,
7222      "properties": {
7223        "align": {
7224          "$ref": "#/definitions/Align",
7225          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
7226        },
7227        "angle": {
7228          "description": "The rotation angle of the text, in degrees.",
7229          "maximum": 360,
7230          "minimum": 0,
7231          "type": "number"
7232        },
7233        "baseline": {
7234          "$ref": "#/definitions/TextBaseline",
7235          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
7236        },
7237        "color": {
7238          "$ref": "#/definitions/Color",
7239          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
7240        },
7241        "cornerRadius": {
7242          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
7243          "type": "number"
7244        },
7245        "cursor": {
7246          "$ref": "#/definitions/Cursor",
7247          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
7248        },
7249        "dir": {
7250          "$ref": "#/definitions/Dir",
7251          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
7252        },
7253        "dx": {
7254          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
7255          "type": "number"
7256        },
7257        "dy": {
7258          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
7259          "type": "number"
7260        },
7261        "ellipsis": {
7262          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
7263          "type": "string"
7264        },
7265        "fill": {
7266          "$ref": "#/definitions/Color",
7267          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
7268        },
7269        "fillOpacity": {
7270          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
7271          "maximum": 1,
7272          "minimum": 0,
7273          "type": "number"
7274        },
7275        "filled": {
7276          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
7277          "type": "boolean"
7278        },
7279        "font": {
7280          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
7281          "type": "string"
7282        },
7283        "fontSize": {
7284          "description": "The font size, in pixels.",
7285          "type": "number"
7286        },
7287        "fontStyle": {
7288          "$ref": "#/definitions/FontStyle",
7289          "description": "The font style (e.g., `\"italic\"`)."
7290        },
7291        "fontWeight": {
7292          "$ref": "#/definitions/FontWeight",
7293          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
7294        },
7295        "height": {
7296          "description": "Height of the marks.",
7297          "type": "number"
7298        },
7299        "href": {
7300          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
7301          "format": "uri",
7302          "type": "string"
7303        },
7304        "interpolate": {
7305          "$ref": "#/definitions/Interpolate",
7306          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
7307        },
7308        "limit": {
7309          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
7310          "type": "number"
7311        },
7312        "opacity": {
7313          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
7314          "maximum": 1,
7315          "minimum": 0,
7316          "type": "number"
7317        },
7318        "order": {
7319          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
7320          "type": [
7321            "null",
7322            "boolean"
7323          ]
7324        },
7325        "orient": {
7326          "$ref": "#/definitions/Orientation",
7327          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
7328        },
7329        "point": {
7330          "anyOf": [
7331            {
7332              "type": "boolean"
7333            },
7334            {
7335              "$ref": "#/definitions/OverlayMarkDef"
7336            },
7337            {
7338              "enum": [
7339                "transparent"
7340              ],
7341              "type": "string"
7342            }
7343          ],
7344          "description": "A flag for overlaying points on top of line or area marks, or an object defining the properties of the overlayed points.\n\n- If this property is `\"transparent\"`, transparent points will be used (for enhancing tooltips and selections).\n\n- If this property is an empty object (`{}`) or `true`, filled points with default properties will be used.\n\n- If this property is `false`, no points would be automatically added to line or area marks.\n\n__Default value:__ `false`."
7345        },
7346        "radius": {
7347          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
7348          "minimum": 0,
7349          "type": "number"
7350        },
7351        "shape": {
7352          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
7353          "type": "string"
7354        },
7355        "size": {
7356          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
7357          "minimum": 0,
7358          "type": "number"
7359        },
7360        "stroke": {
7361          "$ref": "#/definitions/Color",
7362          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
7363        },
7364        "strokeCap": {
7365          "$ref": "#/definitions/StrokeCap",
7366          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
7367        },
7368        "strokeDash": {
7369          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
7370          "items": {
7371            "type": "number"
7372          },
7373          "type": "array"
7374        },
7375        "strokeDashOffset": {
7376          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
7377          "type": "number"
7378        },
7379        "strokeJoin": {
7380          "$ref": "#/definitions/StrokeJoin",
7381          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
7382        },
7383        "strokeMiterLimit": {
7384          "description": "The miter limit at which to bevel a line join.",
7385          "type": "number"
7386        },
7387        "strokeOpacity": {
7388          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
7389          "maximum": 1,
7390          "minimum": 0,
7391          "type": "number"
7392        },
7393        "strokeWidth": {
7394          "description": "The stroke width, in pixels.",
7395          "minimum": 0,
7396          "type": "number"
7397        },
7398        "tension": {
7399          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
7400          "maximum": 1,
7401          "minimum": 0,
7402          "type": "number"
7403        },
7404        "text": {
7405          "description": "Placeholder text if the `text` channel is not specified",
7406          "type": "string"
7407        },
7408        "theta": {
7409          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
7410          "type": "number"
7411        },
7412        "tooltip": {
7413          "anyOf": [
7414            {
7415              "$ref": "#/definitions/Value"
7416            },
7417            {
7418              "$ref": "#/definitions/TooltipContent"
7419            },
7420            {
7421              "type": "null"
7422            }
7423          ],
7424          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
7425        },
7426        "width": {
7427          "description": "Width of the marks.",
7428          "type": "number"
7429        },
7430        "x": {
7431          "anyOf": [
7432            {
7433              "type": "number"
7434            },
7435            {
7436              "enum": [
7437                "width"
7438              ],
7439              "type": "string"
7440            }
7441          ],
7442          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
7443        },
7444        "x2": {
7445          "anyOf": [
7446            {
7447              "type": "number"
7448            },
7449            {
7450              "enum": [
7451                "width"
7452              ],
7453              "type": "string"
7454            }
7455          ],
7456          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
7457        },
7458        "y": {
7459          "anyOf": [
7460            {
7461              "type": "number"
7462            },
7463            {
7464              "enum": [
7465                "height"
7466              ],
7467              "type": "string"
7468            }
7469          ],
7470          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
7471        },
7472        "y2": {
7473          "anyOf": [
7474            {
7475              "type": "number"
7476            },
7477            {
7478              "enum": [
7479                "width"
7480              ],
7481              "type": "string"
7482            }
7483          ],
7484          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
7485        }
7486      },
7487      "type": "object"
7488    },
7489    "LocalMultiTimeUnit": {
7490      "enum": [
7491        "yearquarter",
7492        "yearquartermonth",
7493        "yearmonth",
7494        "yearmonthdate",
7495        "yearmonthdatehours",
7496        "yearmonthdatehoursminutes",
7497        "yearmonthdatehoursminutesseconds",
7498        "quartermonth",
7499        "monthdate",
7500        "monthdatehours",
7501        "hoursminutes",
7502        "hoursminutesseconds",
7503        "minutesseconds",
7504        "secondsmilliseconds"
7505      ],
7506      "type": "string"
7507    },
7508    "LocalSingleTimeUnit": {
7509      "enum": [
7510        "year",
7511        "quarter",
7512        "month",
7513        "day",
7514        "date",
7515        "hours",
7516        "minutes",
7517        "seconds",
7518        "milliseconds"
7519      ],
7520      "type": "string"
7521    },
7522    "LogicalAnd<Predicate>": {
7523      "additionalProperties": false,
7524      "properties": {
7525        "and": {
7526          "items": {
7527            "$ref": "#/definitions/LogicalOperand<Predicate>"
7528          },
7529          "type": "array"
7530        }
7531      },
7532      "required": [
7533        "and"
7534      ],
7535      "type": "object"
7536    },
7537    "SelectionAnd": {
7538      "additionalProperties": false,
7539      "properties": {
7540        "and": {
7541          "items": {
7542            "$ref": "#/definitions/SelectionOperand"
7543          },
7544          "type": "array"
7545        }
7546      },
7547      "required": [
7548        "and"
7549      ],
7550      "type": "object"
7551    },
7552    "LogicalNot<Predicate>": {
7553      "additionalProperties": false,
7554      "properties": {
7555        "not": {
7556          "$ref": "#/definitions/LogicalOperand<Predicate>"
7557        }
7558      },
7559      "required": [
7560        "not"
7561      ],
7562      "type": "object"
7563    },
7564    "SelectionNot": {
7565      "additionalProperties": false,
7566      "properties": {
7567        "not": {
7568          "$ref": "#/definitions/SelectionOperand"
7569        }
7570      },
7571      "required": [
7572        "not"
7573      ],
7574      "type": "object"
7575    },
7576    "LogicalOperand<Predicate>": {
7577      "anyOf": [
7578        {
7579          "$ref": "#/definitions/LogicalNot<Predicate>"
7580        },
7581        {
7582          "$ref": "#/definitions/LogicalAnd<Predicate>"
7583        },
7584        {
7585          "$ref": "#/definitions/LogicalOr<Predicate>"
7586        },
7587        {
7588          "$ref": "#/definitions/Predicate"
7589        }
7590      ]
7591    },
7592    "SelectionOperand": {
7593      "anyOf": [
7594        {
7595          "$ref": "#/definitions/SelectionNot"
7596        },
7597        {
7598          "$ref": "#/definitions/SelectionAnd"
7599        },
7600        {
7601          "$ref": "#/definitions/SelectionOr"
7602        },
7603        {
7604          "type": "string"
7605        }
7606      ]
7607    },
7608    "LogicalOr<Predicate>": {
7609      "additionalProperties": false,
7610      "properties": {
7611        "or": {
7612          "items": {
7613            "$ref": "#/definitions/LogicalOperand<Predicate>"
7614          },
7615          "type": "array"
7616        }
7617      },
7618      "required": [
7619        "or"
7620      ],
7621      "type": "object"
7622    },
7623    "SelectionOr": {
7624      "additionalProperties": false,
7625      "properties": {
7626        "or": {
7627          "items": {
7628            "$ref": "#/definitions/SelectionOperand"
7629          },
7630          "type": "array"
7631        }
7632      },
7633      "required": [
7634        "or"
7635      ],
7636      "type": "object"
7637    },
7638    "LookupData": {
7639      "additionalProperties": false,
7640      "properties": {
7641        "data": {
7642          "$ref": "#/definitions/Data",
7643          "description": "Secondary data source to lookup in."
7644        },
7645        "fields": {
7646          "description": "Fields in foreign data to lookup.\nIf not specified, the entire object is queried.",
7647          "items": {
7648            "$ref": "#/definitions/FieldName"
7649          },
7650          "type": "array"
7651        },
7652        "key": {
7653          "$ref": "#/definitions/FieldName",
7654          "description": "Key in data to lookup."
7655        }
7656      },
7657      "required": [
7658        "data",
7659        "key"
7660      ],
7661      "type": "object"
7662    },
7663    "LookupTransform": {
7664      "additionalProperties": false,
7665      "properties": {
7666        "as": {
7667          "anyOf": [
7668            {
7669              "$ref": "#/definitions/FieldName"
7670            },
7671            {
7672              "items": {
7673                "$ref": "#/definitions/FieldName"
7674              },
7675              "type": "array"
7676            }
7677          ],
7678          "description": "The field or fields for storing the computed formula value.\nIf `from.fields` is specified, the transform will use the same names for `as`.\nIf `from.fields` is not specified, `as` has to be a string and we put the whole object into the data under the specified name."
7679        },
7680        "default": {
7681          "description": "The default value to use if lookup fails.\n\n__Default value:__ `null`",
7682          "type": "string"
7683        },
7684        "from": {
7685          "$ref": "#/definitions/LookupData",
7686          "description": "Secondary data reference."
7687        },
7688        "lookup": {
7689          "$ref": "#/definitions/FieldName",
7690          "description": "Key in primary data source."
7691        }
7692      },
7693      "required": [
7694        "lookup",
7695        "from"
7696      ],
7697      "type": "object"
7698    },
7699    "Mark": {
7700      "description": "All types of primitive marks.",
7701      "enum": [
7702        "area",
7703        "bar",
7704        "line",
7705        "trail",
7706        "point",
7707        "text",
7708        "tick",
7709        "rect",
7710        "rule",
7711        "circle",
7712        "square",
7713        "geoshape"
7714      ],
7715      "type": "string"
7716    },
7717    "MarkConfig": {
7718      "additionalProperties": false,
7719      "properties": {
7720        "align": {
7721          "$ref": "#/definitions/Align",
7722          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
7723        },
7724        "angle": {
7725          "description": "The rotation angle of the text, in degrees.",
7726          "maximum": 360,
7727          "minimum": 0,
7728          "type": "number"
7729        },
7730        "baseline": {
7731          "$ref": "#/definitions/TextBaseline",
7732          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
7733        },
7734        "color": {
7735          "$ref": "#/definitions/Color",
7736          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
7737        },
7738        "cornerRadius": {
7739          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
7740          "type": "number"
7741        },
7742        "cursor": {
7743          "$ref": "#/definitions/Cursor",
7744          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
7745        },
7746        "dir": {
7747          "$ref": "#/definitions/Dir",
7748          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
7749        },
7750        "dx": {
7751          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
7752          "type": "number"
7753        },
7754        "dy": {
7755          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
7756          "type": "number"
7757        },
7758        "ellipsis": {
7759          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
7760          "type": "string"
7761        },
7762        "fill": {
7763          "$ref": "#/definitions/Color",
7764          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
7765        },
7766        "fillOpacity": {
7767          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
7768          "maximum": 1,
7769          "minimum": 0,
7770          "type": "number"
7771        },
7772        "filled": {
7773          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
7774          "type": "boolean"
7775        },
7776        "font": {
7777          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
7778          "type": "string"
7779        },
7780        "fontSize": {
7781          "description": "The font size, in pixels.",
7782          "type": "number"
7783        },
7784        "fontStyle": {
7785          "$ref": "#/definitions/FontStyle",
7786          "description": "The font style (e.g., `\"italic\"`)."
7787        },
7788        "fontWeight": {
7789          "$ref": "#/definitions/FontWeight",
7790          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
7791        },
7792        "height": {
7793          "description": "Height of the marks.",
7794          "type": "number"
7795        },
7796        "href": {
7797          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
7798          "format": "uri",
7799          "type": "string"
7800        },
7801        "interpolate": {
7802          "$ref": "#/definitions/Interpolate",
7803          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
7804        },
7805        "limit": {
7806          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
7807          "type": "number"
7808        },
7809        "opacity": {
7810          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
7811          "maximum": 1,
7812          "minimum": 0,
7813          "type": "number"
7814        },
7815        "order": {
7816          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
7817          "type": [
7818            "null",
7819            "boolean"
7820          ]
7821        },
7822        "orient": {
7823          "$ref": "#/definitions/Orientation",
7824          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
7825        },
7826        "radius": {
7827          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
7828          "minimum": 0,
7829          "type": "number"
7830        },
7831        "shape": {
7832          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
7833          "type": "string"
7834        },
7835        "size": {
7836          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
7837          "minimum": 0,
7838          "type": "number"
7839        },
7840        "stroke": {
7841          "$ref": "#/definitions/Color",
7842          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
7843        },
7844        "strokeCap": {
7845          "$ref": "#/definitions/StrokeCap",
7846          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
7847        },
7848        "strokeDash": {
7849          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
7850          "items": {
7851            "type": "number"
7852          },
7853          "type": "array"
7854        },
7855        "strokeDashOffset": {
7856          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
7857          "type": "number"
7858        },
7859        "strokeJoin": {
7860          "$ref": "#/definitions/StrokeJoin",
7861          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
7862        },
7863        "strokeMiterLimit": {
7864          "description": "The miter limit at which to bevel a line join.",
7865          "type": "number"
7866        },
7867        "strokeOpacity": {
7868          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
7869          "maximum": 1,
7870          "minimum": 0,
7871          "type": "number"
7872        },
7873        "strokeWidth": {
7874          "description": "The stroke width, in pixels.",
7875          "minimum": 0,
7876          "type": "number"
7877        },
7878        "tension": {
7879          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
7880          "maximum": 1,
7881          "minimum": 0,
7882          "type": "number"
7883        },
7884        "text": {
7885          "description": "Placeholder text if the `text` channel is not specified",
7886          "type": "string"
7887        },
7888        "theta": {
7889          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
7890          "type": "number"
7891        },
7892        "tooltip": {
7893          "anyOf": [
7894            {
7895              "$ref": "#/definitions/Value"
7896            },
7897            {
7898              "$ref": "#/definitions/TooltipContent"
7899            },
7900            {
7901              "type": "null"
7902            }
7903          ],
7904          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
7905        },
7906        "width": {
7907          "description": "Width of the marks.",
7908          "type": "number"
7909        },
7910        "x": {
7911          "anyOf": [
7912            {
7913              "type": "number"
7914            },
7915            {
7916              "enum": [
7917                "width"
7918              ],
7919              "type": "string"
7920            }
7921          ],
7922          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
7923        },
7924        "x2": {
7925          "anyOf": [
7926            {
7927              "type": "number"
7928            },
7929            {
7930              "enum": [
7931                "width"
7932              ],
7933              "type": "string"
7934            }
7935          ],
7936          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
7937        },
7938        "y": {
7939          "anyOf": [
7940            {
7941              "type": "number"
7942            },
7943            {
7944              "enum": [
7945                "height"
7946              ],
7947              "type": "string"
7948            }
7949          ],
7950          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
7951        },
7952        "y2": {
7953          "anyOf": [
7954            {
7955              "type": "number"
7956            },
7957            {
7958              "enum": [
7959                "width"
7960              ],
7961              "type": "string"
7962            }
7963          ],
7964          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
7965        }
7966      },
7967      "type": "object"
7968    },
7969    "MarkDef": {
7970      "additionalProperties": false,
7971      "properties": {
7972        "align": {
7973          "$ref": "#/definitions/Align",
7974          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
7975        },
7976        "angle": {
7977          "description": "The rotation angle of the text, in degrees.",
7978          "maximum": 360,
7979          "minimum": 0,
7980          "type": "number"
7981        },
7982        "baseline": {
7983          "$ref": "#/definitions/TextBaseline",
7984          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
7985        },
7986        "binSpacing": {
7987          "description": "Offset between bars for binned field.  Ideal value for this is either 0 (Preferred by statisticians) or 1 (Vega-Lite Default, D3 example style).\n\n__Default value:__ `1`",
7988          "minimum": 0,
7989          "type": "number"
7990        },
7991        "clip": {
7992          "description": "Whether a mark be clipped to the enclosing group’s width and height.",
7993          "type": "boolean"
7994        },
7995        "color": {
7996          "$ref": "#/definitions/Color",
7997          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
7998        },
7999        "cornerRadius": {
8000          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
8001          "type": "number"
8002        },
8003        "cursor": {
8004          "$ref": "#/definitions/Cursor",
8005          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
8006        },
8007        "dir": {
8008          "$ref": "#/definitions/Dir",
8009          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
8010        },
8011        "dx": {
8012          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
8013          "type": "number"
8014        },
8015        "dy": {
8016          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
8017          "type": "number"
8018        },
8019        "ellipsis": {
8020          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
8021          "type": "string"
8022        },
8023        "fill": {
8024          "$ref": "#/definitions/Color",
8025          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
8026        },
8027        "fillOpacity": {
8028          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
8029          "maximum": 1,
8030          "minimum": 0,
8031          "type": "number"
8032        },
8033        "filled": {
8034          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
8035          "type": "boolean"
8036        },
8037        "font": {
8038          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
8039          "type": "string"
8040        },
8041        "fontSize": {
8042          "description": "The font size, in pixels.",
8043          "type": "number"
8044        },
8045        "fontStyle": {
8046          "$ref": "#/definitions/FontStyle",
8047          "description": "The font style (e.g., `\"italic\"`)."
8048        },
8049        "fontWeight": {
8050          "$ref": "#/definitions/FontWeight",
8051          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
8052        },
8053        "height": {
8054          "description": "Height of the marks.",
8055          "type": "number"
8056        },
8057        "href": {
8058          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
8059          "format": "uri",
8060          "type": "string"
8061        },
8062        "interpolate": {
8063          "$ref": "#/definitions/Interpolate",
8064          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
8065        },
8066        "limit": {
8067          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
8068          "type": "number"
8069        },
8070        "line": {
8071          "anyOf": [
8072            {
8073              "type": "boolean"
8074            },
8075            {
8076              "$ref": "#/definitions/OverlayMarkDef"
8077            }
8078          ],
8079          "description": "A flag for overlaying line on top of area marks, or an object defining the properties of the overlayed lines.\n\n- If this value is an empty object (`{}`) or `true`, lines with default properties will be used.\n\n- If this value is `false`, no lines would be automatically added to area marks.\n\n__Default value:__ `false`."
8080        },
8081        "opacity": {
8082          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
8083          "maximum": 1,
8084          "minimum": 0,
8085          "type": "number"
8086        },
8087        "order": {
8088          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
8089          "type": [
8090            "null",
8091            "boolean"
8092          ]
8093        },
8094        "orient": {
8095          "$ref": "#/definitions/Orientation",
8096          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
8097        },
8098        "point": {
8099          "anyOf": [
8100            {
8101              "type": "boolean"
8102            },
8103            {
8104              "$ref": "#/definitions/OverlayMarkDef"
8105            },
8106            {
8107              "enum": [
8108                "transparent"
8109              ],
8110              "type": "string"
8111            }
8112          ],
8113          "description": "A flag for overlaying points on top of line or area marks, or an object defining the properties of the overlayed points.\n\n- If this property is `\"transparent\"`, transparent points will be used (for enhancing tooltips and selections).\n\n- If this property is an empty object (`{}`) or `true`, filled points with default properties will be used.\n\n- If this property is `false`, no points would be automatically added to line or area marks.\n\n__Default value:__ `false`."
8114        },
8115        "radius": {
8116          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
8117          "minimum": 0,
8118          "type": "number"
8119        },
8120        "shape": {
8121          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
8122          "type": "string"
8123        },
8124        "size": {
8125          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
8126          "minimum": 0,
8127          "type": "number"
8128        },
8129        "stroke": {
8130          "$ref": "#/definitions/Color",
8131          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
8132        },
8133        "strokeCap": {
8134          "$ref": "#/definitions/StrokeCap",
8135          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
8136        },
8137        "strokeDash": {
8138          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
8139          "items": {
8140            "type": "number"
8141          },
8142          "type": "array"
8143        },
8144        "strokeDashOffset": {
8145          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
8146          "type": "number"
8147        },
8148        "strokeJoin": {
8149          "$ref": "#/definitions/StrokeJoin",
8150          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
8151        },
8152        "strokeMiterLimit": {
8153          "description": "The miter limit at which to bevel a line join.",
8154          "type": "number"
8155        },
8156        "strokeOpacity": {
8157          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
8158          "maximum": 1,
8159          "minimum": 0,
8160          "type": "number"
8161        },
8162        "strokeWidth": {
8163          "description": "The stroke width, in pixels.",
8164          "minimum": 0,
8165          "type": "number"
8166        },
8167        "style": {
8168          "anyOf": [
8169            {
8170              "type": "string"
8171            },
8172            {
8173              "items": {
8174                "type": "string"
8175              },
8176              "type": "array"
8177            }
8178          ],
8179          "description": "A string or array of strings indicating the name of custom styles to apply to the mark. A style is a named collection of mark property defaults defined within the [style configuration](https://vega.github.io/vega-lite/docs/mark.html#style-config). If style is an array, later styles will override earlier styles. Any [mark properties](https://vega.github.io/vega-lite/docs/encoding.html#mark-prop) explicitly defined within the `encoding` will override a style default.\n\n__Default value:__ The mark's name.  For example, a bar mark will have style `\"bar\"` by default.\n__Note:__ Any specified style will augment the default style. For example, a bar mark with `\"style\": \"foo\"` will receive from `config.style.bar` and `config.style.foo` (the specified style `\"foo\"` has higher precedence)."
8180        },
8181        "tension": {
8182          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
8183          "maximum": 1,
8184          "minimum": 0,
8185          "type": "number"
8186        },
8187        "text": {
8188          "description": "Placeholder text if the `text` channel is not specified",
8189          "type": "string"
8190        },
8191        "theta": {
8192          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
8193          "type": "number"
8194        },
8195        "thickness": {
8196          "description": "Thickness of the tick mark.\n\n__Default value:__  `1`",
8197          "minimum": 0,
8198          "type": "number"
8199        },
8200        "tooltip": {
8201          "anyOf": [
8202            {
8203              "$ref": "#/definitions/Value"
8204            },
8205            {
8206              "$ref": "#/definitions/TooltipContent"
8207            },
8208            {
8209              "type": "null"
8210            }
8211          ],
8212          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
8213        },
8214        "type": {
8215          "$ref": "#/definitions/Mark",
8216          "description": "The mark type. This could a primitive mark type\n(one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"geoshape\"`, `\"rule\"`, and `\"text\"`)\nor a composite mark type (`\"boxplot\"`, `\"errorband\"`, `\"errorbar\"`)."
8217        },
8218        "width": {
8219          "description": "Width of the marks.",
8220          "type": "number"
8221        },
8222        "x": {
8223          "anyOf": [
8224            {
8225              "type": "number"
8226            },
8227            {
8228              "enum": [
8229                "width"
8230              ],
8231              "type": "string"
8232            }
8233          ],
8234          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
8235        },
8236        "x2": {
8237          "anyOf": [
8238            {
8239              "type": "number"
8240            },
8241            {
8242              "enum": [
8243                "width"
8244              ],
8245              "type": "string"
8246            }
8247          ],
8248          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
8249        },
8250        "x2Offset": {
8251          "description": "Offset for x2-position.",
8252          "type": "number"
8253        },
8254        "xOffset": {
8255          "description": "Offset for x-position.",
8256          "type": "number"
8257        },
8258        "y": {
8259          "anyOf": [
8260            {
8261              "type": "number"
8262            },
8263            {
8264              "enum": [
8265                "height"
8266              ],
8267              "type": "string"
8268            }
8269          ],
8270          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
8271        },
8272        "y2": {
8273          "anyOf": [
8274            {
8275              "type": "number"
8276            },
8277            {
8278              "enum": [
8279                "width"
8280              ],
8281              "type": "string"
8282            }
8283          ],
8284          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
8285        },
8286        "y2Offset": {
8287          "description": "Offset for y2-position.",
8288          "type": "number"
8289        },
8290        "yOffset": {
8291          "description": "Offset for y-position.",
8292          "type": "number"
8293        }
8294      },
8295      "required": [
8296        "type"
8297      ],
8298      "type": "object"
8299    },
8300    "Month": {
8301      "maximum": 12,
8302      "minimum": 1,
8303      "type": "number"
8304    },
8305    "MultiSelection": {
8306      "additionalProperties": false,
8307      "properties": {
8308        "clear": {
8309          "anyOf": [
8310            {
8311              "$ref": "#/definitions/EventStream"
8312            },
8313            {
8314              "type": "boolean"
8315            }
8316          ],
8317          "description": "Clears the selection, emptying it of all values. Can be an\n[EventStream](https://vega.github.io/vega/docs/event-streams/) or `false` to disable.\n\n__Default value:__ `dblclick`.\n\n__See also:__ [`clear`](https://vega.github.io/vega-lite/docs/clear.html) documentation."
8318        },
8319        "empty": {
8320          "description": "By default, `all` data values are considered to lie within an empty selection.\nWhen set to `none`, empty selections contain no data values.",
8321          "enum": [
8322            "all",
8323            "none"
8324          ],
8325          "type": "string"
8326        },
8327        "encodings": {
8328          "description": "An array of encoding channels. The corresponding data field values\nmust match for a data tuple to fall within the selection.\n\n__See also:__ [`encodings`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
8329          "items": {
8330            "$ref": "#/definitions/SingleDefUnitChannel"
8331          },
8332          "type": "array"
8333        },
8334        "fields": {
8335          "description": "An array of field names whose values must match for a data tuple to\nfall within the selection.\n\n__See also:__ [`fields`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
8336          "items": {
8337            "$ref": "#/definitions/FieldName"
8338          },
8339          "type": "array"
8340        },
8341        "init": {
8342          "anyOf": [
8343            {
8344              "$ref": "#/definitions/SelectionInitMapping"
8345            },
8346            {
8347              "items": {
8348                "$ref": "#/definitions/SelectionInitMapping"
8349              },
8350              "type": "array"
8351            }
8352          ],
8353          "description": "Initialize the selection with a mapping between [projected channels or field names](https://vega.github.io/vega-lite/docs/project.html) and an initial\nvalue (or array of values).\n\n__See also:__ [`init`](https://vega.github.io/vega-lite/docs/init.html) documentation."
8354        },
8355        "nearest": {
8356          "description": "When true, an invisible voronoi diagram is computed to accelerate discrete\nselection. The data value _nearest_ the mouse cursor is added to the selection.\n\n__See also:__ [`nearest`](https://vega.github.io/vega-lite/docs/nearest.html) documentation.",
8357          "type": "boolean"
8358        },
8359        "on": {
8360          "$ref": "#/definitions/EventStream",
8361          "description": "A [Vega event stream](https://vega.github.io/vega/docs/event-streams/) (object or selector) that triggers the selection.\nFor interval selections, the event stream must specify a [start and end](https://vega.github.io/vega/docs/event-streams/#between-filters)."
8362        },
8363        "resolve": {
8364          "$ref": "#/definitions/SelectionResolution",
8365          "description": "With layered and multi-view displays, a strategy that determines how\nselections' data queries are resolved when applied in a filter transform,\nconditional encoding rule, or scale domain.\n\n__See also:__ [`resolve`](https://vega.github.io/vega-lite/docs/selection-resolve.html) documentation."
8366        },
8367        "toggle": {
8368          "description": "Controls whether data values should be toggled or only ever inserted into\nmulti selections. Can be `true`, `false` (for insertion only), or a\n[Vega expression](https://vega.github.io/vega/docs/expressions/).\n\n__Default value:__ `true`, which corresponds to `event.shiftKey` (i.e.,\ndata values are toggled when a user interacts with the shift-key pressed).\n\n__See also:__ [`toggle`](https://vega.github.io/vega-lite/docs/toggle.html) documentation.",
8369          "type": [
8370            "string",
8371            "boolean"
8372          ]
8373        },
8374        "type": {
8375          "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports three selection types:\n\n- `single` -- to select a single discrete data value on `click`.\n- `multi` -- to select multiple discrete data value; the first value is selected on `click` and additional values toggled on shift-`click`.\n- `interval` -- to select a continuous range of data values on `drag`.",
8376          "enum": [
8377            "multi"
8378          ],
8379          "type": "string"
8380        }
8381      },
8382      "required": [
8383        "type"
8384      ],
8385      "type": "object"
8386    },
8387    "MultiSelectionConfig": {
8388      "additionalProperties": false,
8389      "properties": {
8390        "clear": {
8391          "anyOf": [
8392            {
8393              "$ref": "#/definitions/EventStream"
8394            },
8395            {
8396              "type": "boolean"
8397            }
8398          ],
8399          "description": "Clears the selection, emptying it of all values. Can be an\n[EventStream](https://vega.github.io/vega/docs/event-streams/) or `false` to disable.\n\n__Default value:__ `dblclick`.\n\n__See also:__ [`clear`](https://vega.github.io/vega-lite/docs/clear.html) documentation."
8400        },
8401        "empty": {
8402          "description": "By default, `all` data values are considered to lie within an empty selection.\nWhen set to `none`, empty selections contain no data values.",
8403          "enum": [
8404            "all",
8405            "none"
8406          ],
8407          "type": "string"
8408        },
8409        "encodings": {
8410          "description": "An array of encoding channels. The corresponding data field values\nmust match for a data tuple to fall within the selection.\n\n__See also:__ [`encodings`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
8411          "items": {
8412            "$ref": "#/definitions/SingleDefUnitChannel"
8413          },
8414          "type": "array"
8415        },
8416        "fields": {
8417          "description": "An array of field names whose values must match for a data tuple to\nfall within the selection.\n\n__See also:__ [`fields`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
8418          "items": {
8419            "$ref": "#/definitions/FieldName"
8420          },
8421          "type": "array"
8422        },
8423        "init": {
8424          "anyOf": [
8425            {
8426              "$ref": "#/definitions/SelectionInitMapping"
8427            },
8428            {
8429              "items": {
8430                "$ref": "#/definitions/SelectionInitMapping"
8431              },
8432              "type": "array"
8433            }
8434          ],
8435          "description": "Initialize the selection with a mapping between [projected channels or field names](https://vega.github.io/vega-lite/docs/project.html) and an initial\nvalue (or array of values).\n\n__See also:__ [`init`](https://vega.github.io/vega-lite/docs/init.html) documentation."
8436        },
8437        "nearest": {
8438          "description": "When true, an invisible voronoi diagram is computed to accelerate discrete\nselection. The data value _nearest_ the mouse cursor is added to the selection.\n\n__See also:__ [`nearest`](https://vega.github.io/vega-lite/docs/nearest.html) documentation.",
8439          "type": "boolean"
8440        },
8441        "on": {
8442          "$ref": "#/definitions/EventStream",
8443          "description": "A [Vega event stream](https://vega.github.io/vega/docs/event-streams/) (object or selector) that triggers the selection.\nFor interval selections, the event stream must specify a [start and end](https://vega.github.io/vega/docs/event-streams/#between-filters)."
8444        },
8445        "resolve": {
8446          "$ref": "#/definitions/SelectionResolution",
8447          "description": "With layered and multi-view displays, a strategy that determines how\nselections' data queries are resolved when applied in a filter transform,\nconditional encoding rule, or scale domain.\n\n__See also:__ [`resolve`](https://vega.github.io/vega-lite/docs/selection-resolve.html) documentation."
8448        },
8449        "toggle": {
8450          "description": "Controls whether data values should be toggled or only ever inserted into\nmulti selections. Can be `true`, `false` (for insertion only), or a\n[Vega expression](https://vega.github.io/vega/docs/expressions/).\n\n__Default value:__ `true`, which corresponds to `event.shiftKey` (i.e.,\ndata values are toggled when a user interacts with the shift-key pressed).\n\n__See also:__ [`toggle`](https://vega.github.io/vega-lite/docs/toggle.html) documentation.",
8451          "type": [
8452            "string",
8453            "boolean"
8454          ]
8455        }
8456      },
8457      "type": "object"
8458    },
8459    "MultiTimeUnit": {
8460      "anyOf": [
8461        {
8462          "$ref": "#/definitions/LocalMultiTimeUnit"
8463        },
8464        {
8465          "$ref": "#/definitions/UtcMultiTimeUnit"
8466        }
8467      ]
8468    },
8469    "NamedData": {
8470      "additionalProperties": false,
8471      "properties": {
8472        "format": {
8473          "$ref": "#/definitions/DataFormat",
8474          "description": "An object that specifies the format for parsing the data."
8475        },
8476        "name": {
8477          "description": "Provide a placeholder name and bind data at runtime.",
8478          "type": "string"
8479        }
8480      },
8481      "required": [
8482        "name"
8483      ],
8484      "type": "object"
8485    },
8486    "NiceTime": {
8487      "enum": [
8488        "second",
8489        "minute",
8490        "hour",
8491        "day",
8492        "week",
8493        "month",
8494        "year"
8495      ],
8496      "type": "string"
8497    },
8498    "NumericFieldDefWithCondition": {
8499      "$ref": "#/definitions/FieldDefWithCondition<MarkPropFieldDef,number>"
8500    },
8501    "NumericValueDefWithCondition": {
8502      "$ref": "#/definitions/ValueDefWithCondition<MarkPropFieldDef,number>"
8503    },
8504    "OrderFieldDef": {
8505      "additionalProperties": false,
8506      "properties": {
8507        "aggregate": {
8508          "$ref": "#/definitions/Aggregate",
8509          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
8510        },
8511        "bin": {
8512          "anyOf": [
8513            {
8514              "type": "boolean"
8515            },
8516            {
8517              "$ref": "#/definitions/BinParams"
8518            },
8519            {
8520              "enum": [
8521                "binned"
8522              ],
8523              "type": "string"
8524            },
8525            {
8526              "type": "null"
8527            }
8528          ],
8529          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
8530        },
8531        "field": {
8532          "$ref": "#/definitions/Field",
8533          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
8534        },
8535        "sort": {
8536          "$ref": "#/definitions/SortOrder",
8537          "description": "The sort order. One of `\"ascending\"` (default) or `\"descending\"`."
8538        },
8539        "timeUnit": {
8540          "$ref": "#/definitions/TimeUnit",
8541          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
8542        },
8543        "title": {
8544          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
8545          "type": [
8546            "string",
8547            "null"
8548          ]
8549        },
8550        "type": {
8551          "$ref": "#/definitions/StandardType",
8552          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
8553        }
8554      },
8555      "required": [
8556        "type"
8557      ],
8558      "type": "object"
8559    },
8560    "Orient": {
8561      "enum": [
8562        "left",
8563        "right",
8564        "top",
8565        "bottom"
8566      ],
8567      "type": "string"
8568    },
8569    "Orientation": {
8570      "enum": [
8571        "horizontal",
8572        "vertical"
8573      ],
8574      "type": "string"
8575    },
8576    "OverlayMarkDef": {
8577      "additionalProperties": false,
8578      "properties": {
8579        "align": {
8580          "$ref": "#/definitions/Align",
8581          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
8582        },
8583        "angle": {
8584          "description": "The rotation angle of the text, in degrees.",
8585          "maximum": 360,
8586          "minimum": 0,
8587          "type": "number"
8588        },
8589        "baseline": {
8590          "$ref": "#/definitions/TextBaseline",
8591          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
8592        },
8593        "clip": {
8594          "description": "Whether a mark be clipped to the enclosing group’s width and height.",
8595          "type": "boolean"
8596        },
8597        "color": {
8598          "$ref": "#/definitions/Color",
8599          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
8600        },
8601        "cornerRadius": {
8602          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
8603          "type": "number"
8604        },
8605        "cursor": {
8606          "$ref": "#/definitions/Cursor",
8607          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
8608        },
8609        "dir": {
8610          "$ref": "#/definitions/Dir",
8611          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
8612        },
8613        "dx": {
8614          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
8615          "type": "number"
8616        },
8617        "dy": {
8618          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
8619          "type": "number"
8620        },
8621        "ellipsis": {
8622          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
8623          "type": "string"
8624        },
8625        "fill": {
8626          "$ref": "#/definitions/Color",
8627          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
8628        },
8629        "fillOpacity": {
8630          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
8631          "maximum": 1,
8632          "minimum": 0,
8633          "type": "number"
8634        },
8635        "filled": {
8636          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
8637          "type": "boolean"
8638        },
8639        "font": {
8640          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
8641          "type": "string"
8642        },
8643        "fontSize": {
8644          "description": "The font size, in pixels.",
8645          "type": "number"
8646        },
8647        "fontStyle": {
8648          "$ref": "#/definitions/FontStyle",
8649          "description": "The font style (e.g., `\"italic\"`)."
8650        },
8651        "fontWeight": {
8652          "$ref": "#/definitions/FontWeight",
8653          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
8654        },
8655        "height": {
8656          "description": "Height of the marks.",
8657          "type": "number"
8658        },
8659        "href": {
8660          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
8661          "format": "uri",
8662          "type": "string"
8663        },
8664        "interpolate": {
8665          "$ref": "#/definitions/Interpolate",
8666          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
8667        },
8668        "limit": {
8669          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
8670          "type": "number"
8671        },
8672        "opacity": {
8673          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
8674          "maximum": 1,
8675          "minimum": 0,
8676          "type": "number"
8677        },
8678        "order": {
8679          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
8680          "type": [
8681            "null",
8682            "boolean"
8683          ]
8684        },
8685        "orient": {
8686          "$ref": "#/definitions/Orientation",
8687          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
8688        },
8689        "radius": {
8690          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
8691          "minimum": 0,
8692          "type": "number"
8693        },
8694        "shape": {
8695          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
8696          "type": "string"
8697        },
8698        "size": {
8699          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
8700          "minimum": 0,
8701          "type": "number"
8702        },
8703        "stroke": {
8704          "$ref": "#/definitions/Color",
8705          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
8706        },
8707        "strokeCap": {
8708          "$ref": "#/definitions/StrokeCap",
8709          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
8710        },
8711        "strokeDash": {
8712          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
8713          "items": {
8714            "type": "number"
8715          },
8716          "type": "array"
8717        },
8718        "strokeDashOffset": {
8719          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
8720          "type": "number"
8721        },
8722        "strokeJoin": {
8723          "$ref": "#/definitions/StrokeJoin",
8724          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
8725        },
8726        "strokeMiterLimit": {
8727          "description": "The miter limit at which to bevel a line join.",
8728          "type": "number"
8729        },
8730        "strokeOpacity": {
8731          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
8732          "maximum": 1,
8733          "minimum": 0,
8734          "type": "number"
8735        },
8736        "strokeWidth": {
8737          "description": "The stroke width, in pixels.",
8738          "minimum": 0,
8739          "type": "number"
8740        },
8741        "style": {
8742          "anyOf": [
8743            {
8744              "type": "string"
8745            },
8746            {
8747              "items": {
8748                "type": "string"
8749              },
8750              "type": "array"
8751            }
8752          ],
8753          "description": "A string or array of strings indicating the name of custom styles to apply to the mark. A style is a named collection of mark property defaults defined within the [style configuration](https://vega.github.io/vega-lite/docs/mark.html#style-config). If style is an array, later styles will override earlier styles. Any [mark properties](https://vega.github.io/vega-lite/docs/encoding.html#mark-prop) explicitly defined within the `encoding` will override a style default.\n\n__Default value:__ The mark's name.  For example, a bar mark will have style `\"bar\"` by default.\n__Note:__ Any specified style will augment the default style. For example, a bar mark with `\"style\": \"foo\"` will receive from `config.style.bar` and `config.style.foo` (the specified style `\"foo\"` has higher precedence)."
8754        },
8755        "tension": {
8756          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
8757          "maximum": 1,
8758          "minimum": 0,
8759          "type": "number"
8760        },
8761        "text": {
8762          "description": "Placeholder text if the `text` channel is not specified",
8763          "type": "string"
8764        },
8765        "theta": {
8766          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
8767          "type": "number"
8768        },
8769        "tooltip": {
8770          "anyOf": [
8771            {
8772              "$ref": "#/definitions/Value"
8773            },
8774            {
8775              "$ref": "#/definitions/TooltipContent"
8776            },
8777            {
8778              "type": "null"
8779            }
8780          ],
8781          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
8782        },
8783        "width": {
8784          "description": "Width of the marks.",
8785          "type": "number"
8786        },
8787        "x": {
8788          "anyOf": [
8789            {
8790              "type": "number"
8791            },
8792            {
8793              "enum": [
8794                "width"
8795              ],
8796              "type": "string"
8797            }
8798          ],
8799          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
8800        },
8801        "x2": {
8802          "anyOf": [
8803            {
8804              "type": "number"
8805            },
8806            {
8807              "enum": [
8808                "width"
8809              ],
8810              "type": "string"
8811            }
8812          ],
8813          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
8814        },
8815        "x2Offset": {
8816          "description": "Offset for x2-position.",
8817          "type": "number"
8818        },
8819        "xOffset": {
8820          "description": "Offset for x-position.",
8821          "type": "number"
8822        },
8823        "y": {
8824          "anyOf": [
8825            {
8826              "type": "number"
8827            },
8828            {
8829              "enum": [
8830                "height"
8831              ],
8832              "type": "string"
8833            }
8834          ],
8835          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
8836        },
8837        "y2": {
8838          "anyOf": [
8839            {
8840              "type": "number"
8841            },
8842            {
8843              "enum": [
8844                "width"
8845              ],
8846              "type": "string"
8847            }
8848          ],
8849          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
8850        },
8851        "y2Offset": {
8852          "description": "Offset for y2-position.",
8853          "type": "number"
8854        },
8855        "yOffset": {
8856          "description": "Offset for y-position.",
8857          "type": "number"
8858        }
8859      },
8860      "type": "object"
8861    },
8862    "Padding": {
8863      "anyOf": [
8864        {
8865          "type": "number"
8866        },
8867        {
8868          "additionalProperties": false,
8869          "properties": {
8870            "bottom": {
8871              "type": "number"
8872            },
8873            "left": {
8874              "type": "number"
8875            },
8876            "right": {
8877              "type": "number"
8878            },
8879            "top": {
8880              "type": "number"
8881            }
8882          },
8883          "type": "object"
8884        }
8885      ],
8886      "minimum": 0
8887    },
8888    "Parse": {
8889      "additionalProperties": {
8890        "$ref": "#/definitions/ParseValue"
8891      },
8892      "type": "object"
8893    },
8894    "ParseValue": {
8895      "anyOf": [
8896        {
8897          "type": "null"
8898        },
8899        {
8900          "type": "string"
8901        },
8902        {
8903          "enum": [
8904            "string"
8905          ],
8906          "type": "string"
8907        },
8908        {
8909          "enum": [
8910            "boolean"
8911          ],
8912          "type": "string"
8913        },
8914        {
8915          "enum": [
8916            "date"
8917          ],
8918          "type": "string"
8919        },
8920        {
8921          "enum": [
8922            "number"
8923          ],
8924          "type": "string"
8925        }
8926      ]
8927    },
8928    "PartsMixins<BoxPlotPart>": {
8929      "additionalProperties": false,
8930      "properties": {
8931        "box": {
8932          "anyOf": [
8933            {
8934              "type": "boolean"
8935            },
8936            {
8937              "$ref": "#/definitions/MarkConfig"
8938            }
8939          ]
8940        },
8941        "median": {
8942          "anyOf": [
8943            {
8944              "type": "boolean"
8945            },
8946            {
8947              "$ref": "#/definitions/MarkConfig"
8948            }
8949          ]
8950        },
8951        "outliers": {
8952          "anyOf": [
8953            {
8954              "type": "boolean"
8955            },
8956            {
8957              "$ref": "#/definitions/MarkConfig"
8958            }
8959          ]
8960        },
8961        "rule": {
8962          "anyOf": [
8963            {
8964              "type": "boolean"
8965            },
8966            {
8967              "$ref": "#/definitions/MarkConfig"
8968            }
8969          ]
8970        },
8971        "ticks": {
8972          "anyOf": [
8973            {
8974              "type": "boolean"
8975            },
8976            {
8977              "$ref": "#/definitions/MarkConfig"
8978            }
8979          ]
8980        }
8981      },
8982      "type": "object"
8983    },
8984    "PartsMixins<ErrorBandPart>": {
8985      "additionalProperties": false,
8986      "properties": {
8987        "band": {
8988          "anyOf": [
8989            {
8990              "type": "boolean"
8991            },
8992            {
8993              "$ref": "#/definitions/MarkConfig"
8994            }
8995          ]
8996        },
8997        "borders": {
8998          "anyOf": [
8999            {
9000              "type": "boolean"
9001            },
9002            {
9003              "$ref": "#/definitions/MarkConfig"
9004            }
9005          ]
9006        }
9007      },
9008      "type": "object"
9009    },
9010    "PartsMixins<ErrorBarPart>": {
9011      "additionalProperties": false,
9012      "properties": {
9013        "rule": {
9014          "anyOf": [
9015            {
9016              "type": "boolean"
9017            },
9018            {
9019              "$ref": "#/definitions/MarkConfig"
9020            }
9021          ]
9022        },
9023        "ticks": {
9024          "anyOf": [
9025            {
9026              "type": "boolean"
9027            },
9028            {
9029              "$ref": "#/definitions/MarkConfig"
9030            }
9031          ]
9032        }
9033      },
9034      "type": "object"
9035    },
9036    "PositionFieldDef": {
9037      "additionalProperties": false,
9038      "properties": {
9039        "aggregate": {
9040          "$ref": "#/definitions/Aggregate",
9041          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
9042        },
9043        "axis": {
9044          "anyOf": [
9045            {
9046              "$ref": "#/definitions/Axis"
9047            },
9048            {
9049              "type": "null"
9050            }
9051          ],
9052          "description": "An object defining properties of axis's gridlines, ticks and labels.\nIf `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
9053        },
9054        "bin": {
9055          "anyOf": [
9056            {
9057              "type": "boolean"
9058            },
9059            {
9060              "$ref": "#/definitions/BinParams"
9061            },
9062            {
9063              "enum": [
9064                "binned"
9065              ],
9066              "type": "string"
9067            },
9068            {
9069              "type": "null"
9070            }
9071          ],
9072          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
9073        },
9074        "field": {
9075          "$ref": "#/definitions/Field",
9076          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
9077        },
9078        "impute": {
9079          "$ref": "#/definitions/ImputeParams",
9080          "description": "An object defining the properties of the Impute Operation to be applied.\nThe field value of the other positional channel is taken as `key` of the `Impute` Operation.\nThe field of the `color` channel if specified is used as `groupby` of the `Impute` Operation.\n\n__See also:__ [`impute`](https://vega.github.io/vega-lite/docs/impute.html) documentation."
9081        },
9082        "scale": {
9083          "anyOf": [
9084            {
9085              "$ref": "#/definitions/Scale"
9086            },
9087            {
9088              "type": "null"
9089            }
9090          ],
9091          "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
9092        },
9093        "sort": {
9094          "$ref": "#/definitions/Sort",
9095          "description": "Sort order for the encoded field.\n\nFor continuous fields (quantitative or temporal), `sort` can be either `\"ascending\"` or `\"descending\"`.\n\nFor discrete fields, `sort` can be one of the following:\n- `\"ascending\"` or `\"descending\"` -- for sorting by the values' natural order in Javascript.\n- [A sort-by-encoding definition](https://vega.github.io/vega-lite/docs/sort.html#sort-by-encoding) for sorting by another encoding channel. (This type of sort definition is not available for `row` and `column` channels.)\n- [A sort field definition](https://vega.github.io/vega-lite/docs/sort.html#sort-field) for sorting by another field.\n- [An array specifying the field values in preferred order](https://vega.github.io/vega-lite/docs/sort.html#sort-array). In this case, the sort order will obey the values in the array, followed by any unspecified values in their original order.  For discrete time field, values in the sort array can be [date-time definition objects](types#datetime). In addition, for time units `\"month\"` and `\"day\"`, the values can be the month or day names (case insensitive) or their 3-letter initials (e.g., `\"Mon\"`, `\"Tue\"`).\n- `null` indicating no sort.\n\n__Default value:__ `\"ascending\"`\n\n__Note:__ `null` is not supported for `row` and `column`.\n\n__See also:__ [`sort`](https://vega.github.io/vega-lite/docs/sort.html) documentation."
9096        },
9097        "stack": {
9098          "anyOf": [
9099            {
9100              "$ref": "#/definitions/StackOffset"
9101            },
9102            {
9103              "type": "null"
9104            },
9105            {
9106              "type": "boolean"
9107            }
9108          ],
9109          "description": "Type of stacking offset if the field should be stacked.\n`stack` is only applicable for `x` and `y` channels with continuous domains.\nFor example, `stack` of `y` can be used to customize stacking for a vertical bar chart.\n\n`stack` can be one of the following values:\n- `\"zero\"` or `true`: stacking with baseline offset at zero value of the scale (for creating typical stacked [bar](https://vega.github.io/vega-lite/docs/stack.html#bar) and [area](https://vega.github.io/vega-lite/docs/stack.html#area) chart).\n- `\"normalize\"` - stacking with normalized domain (for creating [normalized stacked bar and area charts](https://vega.github.io/vega-lite/docs/stack.html#normalized). <br/>\n-`\"center\"` - stacking with center baseline (for [streamgraph](https://vega.github.io/vega-lite/docs/stack.html#streamgraph)).\n- `null` or `false` - No-stacking. This will produce layered [bar](https://vega.github.io/vega-lite/docs/stack.html#layered-bar-chart) and area chart.\n\n__Default value:__ `zero` for plots with all of the following conditions are true:\n(1) the mark is `bar` or `area`;\n(2) the stacked measure channel (x or y) has a linear scale;\n(3) At least one of non-position channels mapped to an unaggregated field that is different from x and y.  Otherwise, `null` by default.\n\n__See also:__ [`stack`](https://vega.github.io/vega-lite/docs/stack.html) documentation."
9110        },
9111        "timeUnit": {
9112          "$ref": "#/definitions/TimeUnit",
9113          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
9114        },
9115        "title": {
9116          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
9117          "type": [
9118            "string",
9119            "null"
9120          ]
9121        },
9122        "type": {
9123          "$ref": "#/definitions/StandardType",
9124          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
9125        }
9126      },
9127      "required": [
9128        "type"
9129      ],
9130      "type": "object"
9131    },
9132    "Predicate": {
9133      "anyOf": [
9134        {
9135          "$ref": "#/definitions/FieldEqualPredicate"
9136        },
9137        {
9138          "$ref": "#/definitions/FieldRangePredicate"
9139        },
9140        {
9141          "$ref": "#/definitions/FieldOneOfPredicate"
9142        },
9143        {
9144          "$ref": "#/definitions/FieldLTPredicate"
9145        },
9146        {
9147          "$ref": "#/definitions/FieldGTPredicate"
9148        },
9149        {
9150          "$ref": "#/definitions/FieldLTEPredicate"
9151        },
9152        {
9153          "$ref": "#/definitions/FieldGTEPredicate"
9154        },
9155        {
9156          "$ref": "#/definitions/FieldValidPredicate"
9157        },
9158        {
9159          "$ref": "#/definitions/SelectionPredicate"
9160        },
9161        {
9162          "type": "string"
9163        }
9164      ]
9165    },
9166    "Projection": {
9167      "additionalProperties": false,
9168      "properties": {
9169        "center": {
9170          "description": "Sets the projection’s center to the specified center, a two-element array of longitude and latitude in degrees.\n\n__Default value:__ `[0, 0]`",
9171          "items": {
9172            "type": "number"
9173          },
9174          "type": "array"
9175        },
9176        "clipAngle": {
9177          "description": "Sets the projection’s clipping circle radius to the specified angle in degrees. If `null`, switches to [antimeridian](http://bl.ocks.org/mbostock/3788999) cutting rather than small-circle clipping.",
9178          "type": "number"
9179        },
9180        "clipExtent": {
9181          "description": "Sets the projection’s viewport clip extent to the specified bounds in pixels. The extent bounds are specified as an array `[[x0, y0], [x1, y1]]`, where `x0` is the left-side of the viewport, `y0` is the top, `x1` is the right and `y1` is the bottom. If `null`, no viewport clipping is performed.",
9182          "items": {
9183            "items": {
9184              "type": "number"
9185            },
9186            "type": "array"
9187          },
9188          "type": "array"
9189        },
9190        "coefficient": {
9191          "type": "number"
9192        },
9193        "distance": {
9194          "type": "number"
9195        },
9196        "fraction": {
9197          "type": "number"
9198        },
9199        "lobes": {
9200          "type": "number"
9201        },
9202        "parallel": {
9203          "type": "number"
9204        },
9205        "precision": {
9206          "description": "Sets the threshold for the projection’s [adaptive resampling](http://bl.ocks.org/mbostock/3795544) to the specified value in pixels. This value corresponds to the [Douglas–Peucker distance](http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm). If precision is not specified, returns the projection’s current resampling precision which defaults to `√0.5 ≅ 0.70710…`.",
9207          "type": "number"
9208        },
9209        "radius": {
9210          "type": "number"
9211        },
9212        "ratio": {
9213          "type": "number"
9214        },
9215        "reflectX": {
9216          "type": "boolean"
9217        },
9218        "reflectY": {
9219          "type": "boolean"
9220        },
9221        "rotate": {
9222          "description": "Sets the projection’s three-axis rotation to the specified angles, which must be a two- or three-element array of numbers [`lambda`, `phi`, `gamma`] specifying the rotation angles in degrees about each spherical axis. (These correspond to yaw, pitch and roll.)\n\n__Default value:__ `[0, 0, 0]`",
9223          "items": {
9224            "type": "number"
9225          },
9226          "type": "array"
9227        },
9228        "scale": {
9229          "description": "Sets the projection's scale (zoom) value, overriding automatic fitting.",
9230          "type": "number"
9231        },
9232        "spacing": {
9233          "type": "number"
9234        },
9235        "tilt": {
9236          "type": "number"
9237        },
9238        "translate": {
9239          "description": "Sets the projection's translation (pan) value, overriding automatic fitting.",
9240          "items": {
9241            "type": "number"
9242          },
9243          "type": "array"
9244        },
9245        "type": {
9246          "$ref": "#/definitions/ProjectionType",
9247          "description": "The cartographic projection to use. This value is case-insensitive, for example `\"albers\"` and `\"Albers\"` indicate the same projection type. You can find all valid projection types [in the documentation](https://vega.github.io/vega-lite/docs/projection.html#projection-types).\n\n__Default value:__ `mercator`"
9248        }
9249      },
9250      "type": "object"
9251    },
9252    "ProjectionConfig": {
9253      "$ref": "#/definitions/Projection",
9254      "description": "Any property of Projection can be in config"
9255    },
9256    "ProjectionType": {
9257      "enum": [
9258        "albers",
9259        "albersUsa",
9260        "azimuthalEqualArea",
9261        "azimuthalEquidistant",
9262        "conicConformal",
9263        "conicEqualArea",
9264        "conicEquidistant",
9265        "equirectangular",
9266        "gnomonic",
9267        "identity",
9268        "mercator",
9269        "naturalEarth1",
9270        "orthographic",
9271        "stereographic",
9272        "transverseMercator"
9273      ],
9274      "type": "string"
9275    },
9276    "RangeConfig": {
9277      "additionalProperties": {
9278        "$ref": "#/definitions/RangeConfigValue"
9279      },
9280      "properties": {
9281        "category": {
9282          "anyOf": [
9283            {
9284              "items": {
9285                "type": "string"
9286              },
9287              "type": "array"
9288            },
9289            {
9290              "$ref": "#/definitions/SchemeConfig"
9291            }
9292          ],
9293          "description": "Default range for _nominal_ (categorical) fields."
9294        },
9295        "diverging": {
9296          "anyOf": [
9297            {
9298              "items": {
9299                "type": "string"
9300              },
9301              "type": "array"
9302            },
9303            {
9304              "$ref": "#/definitions/SchemeConfig"
9305            }
9306          ],
9307          "description": "Default range for diverging _quantitative_ fields."
9308        },
9309        "heatmap": {
9310          "anyOf": [
9311            {
9312              "items": {
9313                "type": "string"
9314              },
9315              "type": "array"
9316            },
9317            {
9318              "$ref": "#/definitions/SchemeConfig"
9319            }
9320          ],
9321          "description": "Default range for _quantitative_ heatmaps."
9322        },
9323        "ordinal": {
9324          "anyOf": [
9325            {
9326              "items": {
9327                "type": "string"
9328              },
9329              "type": "array"
9330            },
9331            {
9332              "$ref": "#/definitions/SchemeConfig"
9333            }
9334          ],
9335          "description": "Default range for _ordinal_ fields."
9336        },
9337        "ramp": {
9338          "anyOf": [
9339            {
9340              "items": {
9341                "type": "string"
9342              },
9343              "type": "array"
9344            },
9345            {
9346              "$ref": "#/definitions/SchemeConfig"
9347            }
9348          ],
9349          "description": "Default range for _quantitative_ and _temporal_ fields."
9350        },
9351        "symbol": {
9352          "description": "Default range palette for the `shape` channel.",
9353          "items": {
9354            "type": "string"
9355          },
9356          "type": "array"
9357        }
9358      },
9359      "type": "object"
9360    },
9361    "RangeConfigValue": {
9362      "anyOf": [
9363        {
9364          "items": {
9365            "type": [
9366              "number",
9367              "string"
9368            ]
9369          },
9370          "type": "array"
9371        },
9372        {
9373          "$ref": "#/definitions/SchemeConfig"
9374        },
9375        {
9376          "additionalProperties": false,
9377          "properties": {
9378            "step": {
9379              "type": "number"
9380            }
9381          },
9382          "required": [
9383            "step"
9384          ],
9385          "type": "object"
9386        }
9387      ]
9388    },
9389    "RectConfig": {
9390      "additionalProperties": false,
9391      "properties": {
9392        "align": {
9393          "$ref": "#/definitions/Align",
9394          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
9395        },
9396        "angle": {
9397          "description": "The rotation angle of the text, in degrees.",
9398          "maximum": 360,
9399          "minimum": 0,
9400          "type": "number"
9401        },
9402        "baseline": {
9403          "$ref": "#/definitions/TextBaseline",
9404          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
9405        },
9406        "binSpacing": {
9407          "description": "Offset between bars for binned field.  Ideal value for this is either 0 (Preferred by statisticians) or 1 (Vega-Lite Default, D3 example style).\n\n__Default value:__ `1`",
9408          "minimum": 0,
9409          "type": "number"
9410        },
9411        "color": {
9412          "$ref": "#/definitions/Color",
9413          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
9414        },
9415        "continuousBandSize": {
9416          "description": "The default size of the bars on continuous scales.\n\n__Default value:__ `5`",
9417          "minimum": 0,
9418          "type": "number"
9419        },
9420        "cornerRadius": {
9421          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
9422          "type": "number"
9423        },
9424        "cursor": {
9425          "$ref": "#/definitions/Cursor",
9426          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
9427        },
9428        "dir": {
9429          "$ref": "#/definitions/Dir",
9430          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
9431        },
9432        "discreteBandSize": {
9433          "description": "The default size of the bars with discrete dimensions.  If unspecified, the default size is  `bandSize-1`,\nwhich provides 1 pixel offset between bars.",
9434          "minimum": 0,
9435          "type": "number"
9436        },
9437        "dx": {
9438          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
9439          "type": "number"
9440        },
9441        "dy": {
9442          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
9443          "type": "number"
9444        },
9445        "ellipsis": {
9446          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
9447          "type": "string"
9448        },
9449        "fill": {
9450          "$ref": "#/definitions/Color",
9451          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
9452        },
9453        "fillOpacity": {
9454          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
9455          "maximum": 1,
9456          "minimum": 0,
9457          "type": "number"
9458        },
9459        "filled": {
9460          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
9461          "type": "boolean"
9462        },
9463        "font": {
9464          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
9465          "type": "string"
9466        },
9467        "fontSize": {
9468          "description": "The font size, in pixels.",
9469          "type": "number"
9470        },
9471        "fontStyle": {
9472          "$ref": "#/definitions/FontStyle",
9473          "description": "The font style (e.g., `\"italic\"`)."
9474        },
9475        "fontWeight": {
9476          "$ref": "#/definitions/FontWeight",
9477          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
9478        },
9479        "height": {
9480          "description": "Height of the marks.",
9481          "type": "number"
9482        },
9483        "href": {
9484          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
9485          "format": "uri",
9486          "type": "string"
9487        },
9488        "interpolate": {
9489          "$ref": "#/definitions/Interpolate",
9490          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
9491        },
9492        "limit": {
9493          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
9494          "type": "number"
9495        },
9496        "opacity": {
9497          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
9498          "maximum": 1,
9499          "minimum": 0,
9500          "type": "number"
9501        },
9502        "order": {
9503          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
9504          "type": [
9505            "null",
9506            "boolean"
9507          ]
9508        },
9509        "orient": {
9510          "$ref": "#/definitions/Orientation",
9511          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
9512        },
9513        "radius": {
9514          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
9515          "minimum": 0,
9516          "type": "number"
9517        },
9518        "shape": {
9519          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
9520          "type": "string"
9521        },
9522        "size": {
9523          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
9524          "minimum": 0,
9525          "type": "number"
9526        },
9527        "stroke": {
9528          "$ref": "#/definitions/Color",
9529          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
9530        },
9531        "strokeCap": {
9532          "$ref": "#/definitions/StrokeCap",
9533          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
9534        },
9535        "strokeDash": {
9536          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
9537          "items": {
9538            "type": "number"
9539          },
9540          "type": "array"
9541        },
9542        "strokeDashOffset": {
9543          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
9544          "type": "number"
9545        },
9546        "strokeJoin": {
9547          "$ref": "#/definitions/StrokeJoin",
9548          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
9549        },
9550        "strokeMiterLimit": {
9551          "description": "The miter limit at which to bevel a line join.",
9552          "type": "number"
9553        },
9554        "strokeOpacity": {
9555          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
9556          "maximum": 1,
9557          "minimum": 0,
9558          "type": "number"
9559        },
9560        "strokeWidth": {
9561          "description": "The stroke width, in pixels.",
9562          "minimum": 0,
9563          "type": "number"
9564        },
9565        "tension": {
9566          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
9567          "maximum": 1,
9568          "minimum": 0,
9569          "type": "number"
9570        },
9571        "text": {
9572          "description": "Placeholder text if the `text` channel is not specified",
9573          "type": "string"
9574        },
9575        "theta": {
9576          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
9577          "type": "number"
9578        },
9579        "tooltip": {
9580          "anyOf": [
9581            {
9582              "$ref": "#/definitions/Value"
9583            },
9584            {
9585              "$ref": "#/definitions/TooltipContent"
9586            },
9587            {
9588              "type": "null"
9589            }
9590          ],
9591          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
9592        },
9593        "width": {
9594          "description": "Width of the marks.",
9595          "type": "number"
9596        },
9597        "x": {
9598          "anyOf": [
9599            {
9600              "type": "number"
9601            },
9602            {
9603              "enum": [
9604                "width"
9605              ],
9606              "type": "string"
9607            }
9608          ],
9609          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
9610        },
9611        "x2": {
9612          "anyOf": [
9613            {
9614              "type": "number"
9615            },
9616            {
9617              "enum": [
9618                "width"
9619              ],
9620              "type": "string"
9621            }
9622          ],
9623          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
9624        },
9625        "y": {
9626          "anyOf": [
9627            {
9628              "type": "number"
9629            },
9630            {
9631              "enum": [
9632                "height"
9633              ],
9634              "type": "string"
9635            }
9636          ],
9637          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
9638        },
9639        "y2": {
9640          "anyOf": [
9641            {
9642              "type": "number"
9643            },
9644            {
9645              "enum": [
9646                "width"
9647              ],
9648              "type": "string"
9649            }
9650          ],
9651          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
9652        }
9653      },
9654      "type": "object"
9655    },
9656    "RepeatMapping": {
9657      "additionalProperties": false,
9658      "properties": {
9659        "column": {
9660          "description": "An array of fields to be repeated horizontally.",
9661          "items": {
9662            "type": "string"
9663          },
9664          "type": "array"
9665        },
9666        "row": {
9667          "description": "An array of fields to be repeated vertically.",
9668          "items": {
9669            "type": "string"
9670          },
9671          "type": "array"
9672        }
9673      },
9674      "type": "object"
9675    },
9676    "RepeatRef": {
9677      "additionalProperties": false,
9678      "description": "A ValueDef with optional Condition<ValueDef | FieldDef>\n{\n   condition: {field: ...} | {value: ...},\n   value: ...,\n} \n Reference to a repeated value.",
9679      "properties": {
9680        "repeat": {
9681          "enum": [
9682            "row",
9683            "column",
9684            "repeat"
9685          ],
9686          "type": "string"
9687        }
9688      },
9689      "required": [
9690        "repeat"
9691      ],
9692      "type": "object"
9693    },
9694    "Resolve": {
9695      "additionalProperties": false,
9696      "description": "Defines how scales, axes, and legends from different specs should be combined. Resolve is a mapping from `scale`, `axis`, and `legend` to a mapping from channels to resolutions.",
9697      "properties": {
9698        "axis": {
9699          "$ref": "#/definitions/AxisResolveMap"
9700        },
9701        "legend": {
9702          "$ref": "#/definitions/LegendResolveMap"
9703        },
9704        "scale": {
9705          "$ref": "#/definitions/ScaleResolveMap"
9706        }
9707      },
9708      "type": "object"
9709    },
9710    "ResolveMode": {
9711      "enum": [
9712        "independent",
9713        "shared"
9714      ],
9715      "type": "string"
9716    },
9717    "RowCol<LayoutAlign>": {
9718      "additionalProperties": false,
9719      "properties": {
9720        "column": {
9721          "$ref": "#/definitions/LayoutAlign"
9722        },
9723        "row": {
9724          "$ref": "#/definitions/LayoutAlign"
9725        }
9726      },
9727      "type": "object"
9728    },
9729    "RowCol<boolean>": {
9730      "additionalProperties": false,
9731      "properties": {
9732        "column": {
9733          "type": "boolean"
9734        },
9735        "row": {
9736          "type": "boolean"
9737        }
9738      },
9739      "type": "object"
9740    },
9741    "RowCol<number>": {
9742      "additionalProperties": false,
9743      "properties": {
9744        "column": {
9745          "type": "number"
9746        },
9747        "row": {
9748          "type": "number"
9749        }
9750      },
9751      "type": "object"
9752    },
9753    "SampleTransform": {
9754      "additionalProperties": false,
9755      "properties": {
9756        "sample": {
9757          "description": "The maximum number of data objects to include in the sample.\n\n__Default value:__ `1000`",
9758          "type": "number"
9759        }
9760      },
9761      "required": [
9762        "sample"
9763      ],
9764      "type": "object"
9765    },
9766    "Scale": {
9767      "additionalProperties": false,
9768      "properties": {
9769        "align": {
9770          "description": "The alignment of the steps within the scale range.\n\nThis value must lie in the range `[0,1]`. A value of `0.5` indicates that the steps should be centered within the range. A value of `0` or `1` may be used to shift the bands to one side, say to position them adjacent to an axis.\n\n__Default value:__ `0.5`",
9771          "type": "number"
9772        },
9773        "base": {
9774          "description": "The logarithm base of the `log` scale (default `10`).",
9775          "type": "number"
9776        },
9777        "bins": {
9778          "description": "An array of bin boundaries over the scale domain. If provided, axes and legends will use the bin boundaries to inform the choice of tick marks and text labels.",
9779          "items": {
9780            "type": "number"
9781          },
9782          "type": "array"
9783        },
9784        "clamp": {
9785          "description": "If `true`, values that exceed the data domain are clamped to either the minimum or maximum range value\n\n__Default value:__ derived from the [scale config](https://vega.github.io/vega-lite/docs/config.html#scale-config)'s `clamp` (`true` by default).",
9786          "type": "boolean"
9787        },
9788        "constant": {
9789          "description": "A constant determining the slope of the symlog function around zero. Only used for `symlog` scales.\n\n__Default value:__ `1`",
9790          "type": "number"
9791        },
9792        "domain": {
9793          "anyOf": [
9794            {
9795              "items": {
9796                "type": "number"
9797              },
9798              "type": "array"
9799            },
9800            {
9801              "items": {
9802                "type": "string"
9803              },
9804              "type": "array"
9805            },
9806            {
9807              "items": {
9808                "type": "boolean"
9809              },
9810              "type": "array"
9811            },
9812            {
9813              "items": {
9814                "$ref": "#/definitions/DateTime"
9815              },
9816              "type": "array"
9817            },
9818            {
9819              "enum": [
9820                "unaggregated"
9821              ],
9822              "type": "string"
9823            },
9824            {
9825              "$ref": "#/definitions/SelectionDomain"
9826            }
9827          ],
9828          "description": "Customized domain values.\n\nFor _quantitative_ fields, `domain` can take the form of a two-element array with minimum and maximum values.  [Piecewise scales](https://vega.github.io/vega-lite/docs/scale.html#piecewise) can be created by providing a `domain` with more than two entries.\nIf the input field is aggregated, `domain` can also be a string value `\"unaggregated\"`, indicating that the domain should include the raw data values prior to the aggregation.\n\nFor _temporal_ fields, `domain` can be a two-element array minimum and maximum values, in the form of either timestamps or the [DateTime definition objects](https://vega.github.io/vega-lite/docs/types.html#datetime).\n\nFor _ordinal_ and _nominal_ fields, `domain` can be an array that lists valid input values.\n\nThe `selection` property can be used to [interactively determine](https://vega.github.io/vega-lite/docs/selection.html#scale-domains) the scale domain."
9829        },
9830        "exponent": {
9831          "description": "The exponent of the `pow` scale.",
9832          "type": "number"
9833        },
9834        "interpolate": {
9835          "anyOf": [
9836            {
9837              "$ref": "#/definitions/ScaleInterpolate"
9838            },
9839            {
9840              "$ref": "#/definitions/ScaleInterpolateParams"
9841            }
9842          ],
9843          "description": "The interpolation method for range values. By default, a general interpolator for numbers, dates, strings and colors (in HCL space) is used. For color ranges, this property allows interpolation in alternative color spaces. Legal values include `rgb`, `hsl`, `hsl-long`, `lab`, `hcl`, `hcl-long`, `cubehelix` and `cubehelix-long` ('-long' variants use longer paths in polar coordinate spaces). If object-valued, this property accepts an object with a string-valued _type_ property and an optional numeric _gamma_ property applicable to rgb and cubehelix interpolators. For more, see the [d3-interpolate documentation](https://github.com/d3/d3-interpolate).\n\n* __Default value:__ `hcl`"
9844        },
9845        "nice": {
9846          "anyOf": [
9847            {
9848              "type": "boolean"
9849            },
9850            {
9851              "type": "number"
9852            },
9853            {
9854              "$ref": "#/definitions/NiceTime"
9855            },
9856            {
9857              "additionalProperties": false,
9858              "properties": {
9859                "interval": {
9860                  "type": "string"
9861                },
9862                "step": {
9863                  "type": "number"
9864                }
9865              },
9866              "required": [
9867                "interval",
9868                "step"
9869              ],
9870              "type": "object"
9871            }
9872          ],
9873          "description": "Extending the domain so that it starts and ends on nice round values. This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value. Nicing is useful if the domain is computed from data and may be irregular. For example, for a domain of _[0.201479…, 0.996679…]_, a nice domain might be _[0.2, 1.0]_.\n\nFor quantitative scales such as linear, `nice` can be either a boolean flag or a number. If `nice` is a number, it will represent a desired tick count. This allows greater control over the step size used to extend the bounds, guaranteeing that the returned ticks will exactly cover the domain.\n\nFor temporal fields with time and utc scales, the `nice` value can be a string indicating the desired time interval. Legal values are `\"millisecond\"`, `\"second\"`, `\"minute\"`, `\"hour\"`, `\"day\"`, `\"week\"`, `\"month\"`, and `\"year\"`. Alternatively, `time` and `utc` scales can accept an object-valued interval specifier of the form `{\"interval\": \"month\", \"step\": 3}`, which includes a desired number of interval steps. Here, the domain would snap to quarter (Jan, Apr, Jul, Oct) boundaries.\n\n__Default value:__ `true` for unbinned _quantitative_ fields; `false` otherwise."
9874        },
9875        "padding": {
9876          "description": "For _[continuous](https://vega.github.io/vega-lite/docs/scale.html#continuous)_ scales, expands the scale domain to accommodate the specified number of pixels on each of the scale range. The scale range must represent pixels for this parameter to function as intended. Padding adjustment is performed prior to all other adjustments, including the effects of the `zero`, `nice`, `domainMin`, and `domainMax` properties.\n\nFor _[band](https://vega.github.io/vega-lite/docs/scale.html#band)_ scales, shortcut for setting `paddingInner` and `paddingOuter` to the same value.\n\nFor _[point](https://vega.github.io/vega-lite/docs/scale.html#point)_ scales, alias for `paddingOuter`.\n\n__Default value:__ For _continuous_ scales, derived from the [scale config](https://vega.github.io/vega-lite/docs/scale.html#config)'s `continuousPadding`.\nFor _band and point_ scales, see `paddingInner` and `paddingOuter`.  By default, Vega-Lite sets padding such that _width/height = number of unique values * step_.",
9877          "minimum": 0,
9878          "type": "number"
9879        },
9880        "paddingInner": {
9881          "description": "The inner padding (spacing) within each band step of band scales, as a fraction of the step size. This value must lie in the range [0,1].\n\nFor point scale, this property is invalid as point scales do not have internal band widths (only step sizes between bands).\n\n__Default value:__ derived from the [scale config](https://vega.github.io/vega-lite/docs/scale.html#config)'s `bandPaddingInner`.",
9882          "maximum": 1,
9883          "minimum": 0,
9884          "type": "number"
9885        },
9886        "paddingOuter": {
9887          "description": "The outer padding (spacing) at the ends of the range of band and point scales,\nas a fraction of the step size. This value must lie in the range [0,1].\n\n__Default value:__ derived from the [scale config](https://vega.github.io/vega-lite/docs/scale.html#config)'s `bandPaddingOuter` for band scales and `pointPadding` for point scales.\nBy default, Vega-Lite sets outer padding such that _width/height = number of unique values * step_.",
9888          "maximum": 1,
9889          "minimum": 0,
9890          "type": "number"
9891        },
9892        "range": {
9893          "anyOf": [
9894            {
9895              "items": {
9896                "type": "number"
9897              },
9898              "type": "array"
9899            },
9900            {
9901              "items": {
9902                "type": "string"
9903              },
9904              "type": "array"
9905            },
9906            {
9907              "type": "string"
9908            }
9909          ],
9910          "description": "The range of the scale. One of:\n\n- A string indicating a [pre-defined named scale range](https://vega.github.io/vega-lite/docs/scale.html#range-config) (e.g., example, `\"symbol\"`, or `\"diverging\"`).\n\n- For [continuous scales](https://vega.github.io/vega-lite/docs/scale.html#continuous), two-element array indicating  minimum and maximum values, or an array with more than two entries for specifying a [piecewise scale](https://vega.github.io/vega-lite/docs/scale.html#piecewise).\n\n- For [discrete](https://vega.github.io/vega-lite/docs/scale.html#discrete) and [discretizing](https://vega.github.io/vega-lite/docs/scale.html#discretizing) scales, an array of desired output values.\n\n__Notes:__\n\n1) For color scales you can also specify a color [`scheme`](https://vega.github.io/vega-lite/docs/scale.html#scheme) instead of `range`.\n\n2) Any directly specified `range` for `x` and `y` channels will be ignored. Range can be customized via the view's corresponding [size](https://vega.github.io/vega-lite/docs/size.html) (`width` and `height`) or via [range steps and paddings properties](#range-step) for [band](#band) and [point](#point) scales."
9911        },
9912        "rangeStep": {
9913          "description": "The distance between the starts of adjacent bands or points in [band](https://vega.github.io/vega-lite/docs/scale.html#band) and [point](https://vega.github.io/vega-lite/docs/scale.html#point) scales.\n\nIf `rangeStep` is `null` or if the view contains the scale's corresponding [size](https://vega.github.io/vega-lite/docs/size.html) (`width` for `x` scales and `height` for `y` scales), `rangeStep` will be automatically determined to fit the size of the view.\n\n__Default value:__  derived the [scale config](https://vega.github.io/vega-lite/docs/config.html#scale-config)'s `textXRangeStep` (`90` by default) for x-scales of `text` marks and `rangeStep` (`21` by default) for x-scales of other marks and y-scales.\n\n__Warning__: If `rangeStep` is `null` and the cardinality of the scale's domain is higher than `width` or `height`, the rangeStep might become less than one pixel and the mark might not appear correctly.",
9914          "minimum": 0,
9915          "type": [
9916            "number",
9917            "null"
9918          ]
9919        },
9920        "round": {
9921          "description": "If `true`, rounds numeric output values to integers. This can be helpful for snapping to the pixel grid.\n\n__Default value:__ `false`.",
9922          "type": "boolean"
9923        },
9924        "scheme": {
9925          "anyOf": [
9926            {
9927              "type": "string"
9928            },
9929            {
9930              "$ref": "#/definitions/SchemeParams"
9931            }
9932          ],
9933          "description": "A string indicating a color [scheme](https://vega.github.io/vega-lite/docs/scale.html#scheme) name (e.g., `\"category10\"` or `\"blues\"`) or a [scheme parameter object](https://vega.github.io/vega-lite/docs/scale.html#scheme-params).\n\nDiscrete color schemes may be used with [discrete](https://vega.github.io/vega-lite/docs/scale.html#discrete) or [discretizing](https://vega.github.io/vega-lite/docs/scale.html#discretizing) scales. Continuous color schemes are intended for use with color scales.\n\nFor the full list of supported schemes, please refer to the [Vega Scheme](https://vega.github.io/vega/docs/schemes/#reference) reference."
9934        },
9935        "type": {
9936          "$ref": "#/definitions/ScaleType",
9937          "description": "The type of scale.  Vega-Lite supports the following categories of scale types:\n\n1) [**Continuous Scales**](https://vega.github.io/vega-lite/docs/scale.html#continuous) -- mapping continuous domains to continuous output ranges ([`\"linear\"`](https://vega.github.io/vega-lite/docs/scale.html#linear), [`\"pow\"`](https://vega.github.io/vega-lite/docs/scale.html#pow), [`\"sqrt\"`](https://vega.github.io/vega-lite/docs/scale.html#sqrt), [`\"symlog\"`](https://vega.github.io/vega-lite/docs/scale.html#symlog), [`\"log\"`](https://vega.github.io/vega-lite/docs/scale.html#log), [`\"time\"`](https://vega.github.io/vega-lite/docs/scale.html#time), [`\"utc\"`](https://vega.github.io/vega-lite/docs/scale.html#utc).\n\n2) [**Discrete Scales**](https://vega.github.io/vega-lite/docs/scale.html#discrete) -- mapping discrete domains to discrete ([`\"ordinal\"`](https://vega.github.io/vega-lite/docs/scale.html#ordinal)) or continuous ([`\"band\"`](https://vega.github.io/vega-lite/docs/scale.html#band) and [`\"point\"`](https://vega.github.io/vega-lite/docs/scale.html#point)) output ranges.\n\n3) [**Discretizing Scales**](https://vega.github.io/vega-lite/docs/scale.html#discretizing) -- mapping continuous domains to discrete output ranges [`\"bin-ordinal\"`](https://vega.github.io/vega-lite/docs/scale.html#bin-ordinal), [`\"quantile\"`](https://vega.github.io/vega-lite/docs/scale.html#quantile), [`\"quantize\"`](https://vega.github.io/vega-lite/docs/scale.html#quantize) and [`\"threshold\"`](https://vega.github.io/vega-lite/docs/scale.html#threshold).\n\n__Default value:__ please see the [scale type table](https://vega.github.io/vega-lite/docs/scale.html#type)."
9938        },
9939        "zero": {
9940          "description": "If `true`, ensures that a zero baseline value is included in the scale domain.\n\n__Default value:__ `true` for x and y channels if the quantitative field is not binned and no custom `domain` is provided; `false` otherwise.\n\n__Note:__ Log, time, and utc scales do not support `zero`.",
9941          "type": "boolean"
9942        }
9943      },
9944      "type": "object"
9945    },
9946    "ScaleConfig": {
9947      "additionalProperties": false,
9948      "properties": {
9949        "bandPaddingInner": {
9950          "description": "Default inner padding for `x` and `y` band-ordinal scales.\n\n__Default value:__\n- `barBandPaddingInner` for bar marks (`0.1` by default)\n- `rectBandPaddingInner` for rect and other marks (`0` by default)",
9951          "maximum": 1,
9952          "minimum": 0,
9953          "type": "number"
9954        },
9955        "bandPaddingOuter": {
9956          "description": "Default outer padding for `x` and `y` band-ordinal scales.\n\n__Default value:__ `paddingInner/2` (which makes _width/height = number of unique values * step_)",
9957          "maximum": 1,
9958          "minimum": 0,
9959          "type": "number"
9960        },
9961        "barBandPaddingInner": {
9962          "description": "Default inner padding for `x` and `y` band-ordinal scales of `\"bar\"` marks.\n\n__Default value:__ `0.1`",
9963          "maximum": 1,
9964          "minimum": 0,
9965          "type": "number"
9966        },
9967        "barBandPaddingOuter": {
9968          "description": "Default outer padding for `x` and `y` band-ordinal scales of `\"bar\"` marks.\nIf not specified, by default, band scale's paddingOuter is paddingInner/2.",
9969          "maximum": 1,
9970          "minimum": 0,
9971          "type": "number"
9972        },
9973        "clamp": {
9974          "description": "If true, values that exceed the data domain are clamped to either the minimum or maximum range value",
9975          "type": "boolean"
9976        },
9977        "continuousPadding": {
9978          "description": "Default padding for continuous scales.\n\n__Default:__ `5` for continuous x-scale of a vertical bar and continuous y-scale of a horizontal bar.; `0` otherwise.",
9979          "minimum": 0,
9980          "type": "number"
9981        },
9982        "maxBandSize": {
9983          "description": "The default max value for mapping quantitative fields to bar's size/bandSize.\n\nIf undefined (default), we will use the scale's `rangeStep` - 1.",
9984          "minimum": 0,
9985          "type": "number"
9986        },
9987        "maxFontSize": {
9988          "description": "The default max value for mapping quantitative fields to text's size/fontSize.\n\n__Default value:__ `40`",
9989          "minimum": 0,
9990          "type": "number"
9991        },
9992        "maxOpacity": {
9993          "description": "Default max opacity for mapping a field to opacity.\n\n__Default value:__ `0.8`",
9994          "maximum": 1,
9995          "minimum": 0,
9996          "type": "number"
9997        },
9998        "maxSize": {
9999          "description": "Default max value for point size scale.",
10000          "minimum": 0,
10001          "type": "number"
10002        },
10003        "maxStrokeWidth": {
10004          "description": "Default max strokeWidth for the scale of strokeWidth for rule and line marks and of size for trail marks.\n\n__Default value:__ `4`",
10005          "minimum": 0,
10006          "type": "number"
10007        },
10008        "minBandSize": {
10009          "description": "The default min value for mapping quantitative fields to bar and tick's size/bandSize scale with zero=false.\n\n__Default value:__ `2`",
10010          "minimum": 0,
10011          "type": "number"
10012        },
10013        "minFontSize": {
10014          "description": "The default min value for mapping quantitative fields to tick's size/fontSize scale with zero=false\n\n__Default value:__ `8`",
10015          "minimum": 0,
10016          "type": "number"
10017        },
10018        "minOpacity": {
10019          "description": "Default minimum opacity for mapping a field to opacity.\n\n__Default value:__ `0.3`",
10020          "maximum": 1,
10021          "minimum": 0,
10022          "type": "number"
10023        },
10024        "minSize": {
10025          "description": "Default minimum value for point size scale with zero=false.\n\n__Default value:__ `9`",
10026          "minimum": 0,
10027          "type": "number"
10028        },
10029        "minStrokeWidth": {
10030          "description": "Default minimum strokeWidth for the scale of strokeWidth for rule and line marks and of size for trail marks with zero=false.\n\n__Default value:__ `1`",
10031          "minimum": 0,
10032          "type": "number"
10033        },
10034        "pointPadding": {
10035          "description": "Default outer padding for `x` and `y` point-ordinal scales.\n\n__Default value:__ `0.5` (which makes _width/height = number of unique values * step_)",
10036          "maximum": 1,
10037          "minimum": 0,
10038          "type": "number"
10039        },
10040        "quantileCount": {
10041          "description": "Default range cardinality for [`quantile`](https://vega.github.io/vega-lite/docs/scale.html#quantile) scale.\n\n__Default value:__ `4`",
10042          "minimum": 0,
10043          "type": "number"
10044        },
10045        "quantizeCount": {
10046          "description": "Default range cardinality for [`quantize`](https://vega.github.io/vega-lite/docs/scale.html#quantize) scale.\n\n__Default value:__ `4`",
10047          "minimum": 0,
10048          "type": "number"
10049        },
10050        "rangeStep": {
10051          "description": "Default range step for band and point scales of (1) the `y` channel\nand (2) the `x` channel when the mark is not `text`.\n\n__Default value:__ `20`",
10052          "minimum": 0,
10053          "type": [
10054            "number",
10055            "null"
10056          ]
10057        },
10058        "rectBandPaddingInner": {
10059          "description": "Default inner padding for `x` and `y` band-ordinal scales of `\"rect\"` marks.\n\n__Default value:__ `0`",
10060          "maximum": 1,
10061          "minimum": 0,
10062          "type": "number"
10063        },
10064        "rectBandPaddingOuter": {
10065          "description": "Default outer padding for `x` and `y` band-ordinal scales of `\"rect\"` marks.\nIf not specified, by default, band scale's paddingOuter is paddingInner/2.",
10066          "maximum": 1,
10067          "minimum": 0,
10068          "type": "number"
10069        },
10070        "round": {
10071          "description": "If true, rounds numeric output values to integers.\nThis can be helpful for snapping to the pixel grid.\n(Only available for `x`, `y`, and `size` scales.)",
10072          "type": "boolean"
10073        },
10074        "textXRangeStep": {
10075          "description": "Default range step for `x` band and point scales of text marks.\n\n__Default value:__ `90`",
10076          "minimum": 0,
10077          "type": "number"
10078        },
10079        "useUnaggregatedDomain": {
10080          "description": "Use the source data range before aggregation as scale domain instead of aggregated data for aggregate axis.\n\nThis is equivalent to setting `domain` to `\"unaggregate\"` for aggregated _quantitative_ fields by default.\n\nThis property only works with aggregate functions that produce values within the raw data domain (`\"mean\"`, `\"average\"`, `\"median\"`, `\"q1\"`, `\"q3\"`, `\"min\"`, `\"max\"`). For other aggregations that produce values outside of the raw data domain (e.g. `\"count\"`, `\"sum\"`), this property is ignored.\n\n__Default value:__ `false`",
10081          "type": "boolean"
10082        }
10083      },
10084      "type": "object"
10085    },
10086    "ScaleInterpolate": {
10087      "enum": [
10088        "rgb",
10089        "lab",
10090        "hcl",
10091        "hsl",
10092        "hsl-long",
10093        "hcl-long",
10094        "cubehelix",
10095        "cubehelix-long"
10096      ],
10097      "type": "string"
10098    },
10099    "ScaleInterpolateParams": {
10100      "additionalProperties": false,
10101      "properties": {
10102        "gamma": {
10103          "type": "number"
10104        },
10105        "type": {
10106          "enum": [
10107            "rgb",
10108            "cubehelix",
10109            "cubehelix-long"
10110          ],
10111          "type": "string"
10112        }
10113      },
10114      "required": [
10115        "type"
10116      ],
10117      "type": "object"
10118    },
10119    "ScaleResolveMap": {
10120      "additionalProperties": false,
10121      "properties": {
10122        "color": {
10123          "$ref": "#/definitions/ResolveMode"
10124        },
10125        "fill": {
10126          "$ref": "#/definitions/ResolveMode"
10127        },
10128        "fillOpacity": {
10129          "$ref": "#/definitions/ResolveMode"
10130        },
10131        "opacity": {
10132          "$ref": "#/definitions/ResolveMode"
10133        },
10134        "shape": {
10135          "$ref": "#/definitions/ResolveMode"
10136        },
10137        "size": {
10138          "$ref": "#/definitions/ResolveMode"
10139        },
10140        "stroke": {
10141          "$ref": "#/definitions/ResolveMode"
10142        },
10143        "strokeOpacity": {
10144          "$ref": "#/definitions/ResolveMode"
10145        },
10146        "strokeWidth": {
10147          "$ref": "#/definitions/ResolveMode"
10148        },
10149        "x": {
10150          "$ref": "#/definitions/ResolveMode"
10151        },
10152        "y": {
10153          "$ref": "#/definitions/ResolveMode"
10154        }
10155      },
10156      "type": "object"
10157    },
10158    "ScaleType": {
10159      "enum": [
10160        "linear",
10161        "log",
10162        "pow",
10163        "sqrt",
10164        "symlog",
10165        "time",
10166        "utc",
10167        "quantile",
10168        "quantize",
10169        "threshold",
10170        "bin-ordinal",
10171        "ordinal",
10172        "point",
10173        "band"
10174      ],
10175      "type": "string"
10176    },
10177    "SchemeConfig": {
10178      "additionalProperties": false,
10179      "properties": {
10180        "count": {
10181          "type": "number"
10182        },
10183        "extent": {
10184          "items": {
10185            "type": "number"
10186          },
10187          "type": "array"
10188        },
10189        "scheme": {
10190          "type": "string"
10191        }
10192      },
10193      "required": [
10194        "scheme"
10195      ],
10196      "type": "object"
10197    },
10198    "SchemeParams": {
10199      "additionalProperties": false,
10200      "properties": {
10201        "count": {
10202          "description": "The number of colors to use in the scheme. This can be useful for scale types such as `\"quantize\"`, which use the length of the scale range to determine the number of discrete bins for the scale domain.",
10203          "type": "number"
10204        },
10205        "extent": {
10206          "description": "The extent of the color range to use. For example `[0.2, 1]` will rescale the color scheme such that color values in the range _[0, 0.2)_ are excluded from the scheme.",
10207          "items": {
10208            "type": "number"
10209          },
10210          "type": "array"
10211        },
10212        "name": {
10213          "description": "A color scheme name for ordinal scales (e.g., `\"category10\"` or `\"blues\"`).\n\nFor the full list of supported schemes, please refer to the [Vega Scheme](https://vega.github.io/vega/docs/schemes/#reference) reference.",
10214          "type": "string"
10215        }
10216      },
10217      "required": [
10218        "name"
10219      ],
10220      "type": "object"
10221    },
10222    "SecondaryFieldDef": {
10223      "additionalProperties": false,
10224      "description": "A field definition of a secondary channel that shares a scale with another primary channel.  For example, `x2`, `xError` and `xError2` share the same scale with `x`.",
10225      "properties": {
10226        "aggregate": {
10227          "$ref": "#/definitions/Aggregate",
10228          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
10229        },
10230        "bin": {
10231          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation.",
10232          "type": "null"
10233        },
10234        "field": {
10235          "$ref": "#/definitions/Field",
10236          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
10237        },
10238        "timeUnit": {
10239          "$ref": "#/definitions/TimeUnit",
10240          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
10241        },
10242        "title": {
10243          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
10244          "type": [
10245            "string",
10246            "null"
10247          ]
10248        }
10249      },
10250      "type": "object"
10251    },
10252    "SelectionConfig": {
10253      "additionalProperties": false,
10254      "properties": {
10255        "interval": {
10256          "$ref": "#/definitions/IntervalSelectionConfig",
10257          "description": "The default definition for an [`interval`](https://vega.github.io/vega-lite/docs/selection.html#type) selection. All properties and transformations\nfor an interval selection definition (except `type`) may be specified here.\n\nFor instance, setting `interval` to `{\"translate\": false}` disables the ability to move\ninterval selections by default."
10258        },
10259        "multi": {
10260          "$ref": "#/definitions/MultiSelectionConfig",
10261          "description": "The default definition for a [`multi`](https://vega.github.io/vega-lite/docs/selection.html#type) selection. All properties and transformations\nfor a multi selection definition (except `type`) may be specified here.\n\nFor instance, setting `multi` to `{\"toggle\": \"event.altKey\"}` adds additional values to\nmulti selections when clicking with the alt-key pressed by default."
10262        },
10263        "single": {
10264          "$ref": "#/definitions/SingleSelectionConfig",
10265          "description": "The default definition for a [`single`](https://vega.github.io/vega-lite/docs/selection.html#type) selection. All properties and transformations\n  for a single selection definition (except `type`) may be specified here.\n\nFor instance, setting `single` to `{\"on\": \"dblclick\"}` populates single selections on double-click by default."
10266        }
10267      },
10268      "type": "object"
10269    },
10270    "SelectionDef": {
10271      "anyOf": [
10272        {
10273          "$ref": "#/definitions/SingleSelection"
10274        },
10275        {
10276          "$ref": "#/definitions/MultiSelection"
10277        },
10278        {
10279          "$ref": "#/definitions/IntervalSelection"
10280        }
10281      ]
10282    },
10283    "SelectionDomain": {
10284      "anyOf": [
10285        {
10286          "additionalProperties": false,
10287          "properties": {
10288            "field": {
10289              "$ref": "#/definitions/FieldName",
10290              "description": "The field name to extract selected values for, when a selection is [projected](https://vega.github.io/vega-lite/docs/project.html)\nover multiple fields or encodings."
10291            },
10292            "selection": {
10293              "description": "The name of a selection.",
10294              "type": "string"
10295            }
10296          },
10297          "required": [
10298            "selection"
10299          ],
10300          "type": "object"
10301        },
10302        {
10303          "additionalProperties": false,
10304          "properties": {
10305            "encoding": {
10306              "description": "The encoding channel to extract selected values for, when a selection is [projected](https://vega.github.io/vega-lite/docs/project.html)\nover multiple fields or encodings.",
10307              "type": "string"
10308            },
10309            "selection": {
10310              "description": "The name of a selection.",
10311              "type": "string"
10312            }
10313          },
10314          "required": [
10315            "selection"
10316          ],
10317          "type": "object"
10318        }
10319      ]
10320    },
10321    "SelectionInit": {
10322      "anyOf": [
10323        {
10324          "type": "boolean"
10325        },
10326        {
10327          "type": "number"
10328        },
10329        {
10330          "type": "string"
10331        },
10332        {
10333          "$ref": "#/definitions/DateTime"
10334        }
10335      ]
10336    },
10337    "SelectionInitInterval": {
10338      "anyOf": [
10339        {
10340          "items": [
10341            {
10342              "type": "boolean"
10343            },
10344            {
10345              "type": "boolean"
10346            }
10347          ],
10348          "maxItems": 2,
10349          "minItems": 2,
10350          "type": "array"
10351        },
10352        {
10353          "items": [
10354            {
10355              "type": "number"
10356            },
10357            {
10358              "type": "number"
10359            }
10360          ],
10361          "maxItems": 2,
10362          "minItems": 2,
10363          "type": "array"
10364        },
10365        {
10366          "items": [
10367            {
10368              "type": "string"
10369            },
10370            {
10371              "type": "string"
10372            }
10373          ],
10374          "maxItems": 2,
10375          "minItems": 2,
10376          "type": "array"
10377        },
10378        {
10379          "items": [
10380            {
10381              "$ref": "#/definitions/DateTime"
10382            },
10383            {
10384              "$ref": "#/definitions/DateTime"
10385            }
10386          ],
10387          "maxItems": 2,
10388          "minItems": 2,
10389          "type": "array"
10390        }
10391      ]
10392    },
10393    "SelectionInitIntervalMapping": {
10394      "additionalProperties": {
10395        "$ref": "#/definitions/SelectionInitInterval"
10396      },
10397      "type": "object"
10398    },
10399    "SelectionInitMapping": {
10400      "additionalProperties": {
10401        "$ref": "#/definitions/SelectionInit"
10402      },
10403      "type": "object"
10404    },
10405    "SelectionPredicate": {
10406      "additionalProperties": false,
10407      "properties": {
10408        "selection": {
10409          "$ref": "#/definitions/SelectionOperand",
10410          "description": "Filter using a selection name."
10411        }
10412      },
10413      "required": [
10414        "selection"
10415      ],
10416      "type": "object"
10417    },
10418    "SelectionResolution": {
10419      "enum": [
10420        "global",
10421        "union",
10422        "intersect"
10423      ],
10424      "type": "string"
10425    },
10426    "SequenceGenerator": {
10427      "additionalProperties": false,
10428      "properties": {
10429        "name": {
10430          "description": "Provide a placeholder name and bind data at runtime.",
10431          "type": "string"
10432        },
10433        "sequence": {
10434          "$ref": "#/definitions/SequenceParams",
10435          "description": "Generate a sequence of numbers."
10436        }
10437      },
10438      "required": [
10439        "sequence"
10440      ],
10441      "type": "object"
10442    },
10443    "SequenceParams": {
10444      "additionalProperties": false,
10445      "properties": {
10446        "as": {
10447          "$ref": "#/definitions/FieldName",
10448          "description": "The name of the generated sequence field.\n\n__Default value:__ `\"data\"`"
10449        },
10450        "start": {
10451          "description": "The starting value of the sequence (inclusive).",
10452          "type": "number"
10453        },
10454        "step": {
10455          "description": "The step value between sequence entries.\n\n__Default value:__ `1`",
10456          "type": "number"
10457        },
10458        "stop": {
10459          "description": "The ending value of the sequence (exclusive).",
10460          "type": "number"
10461        }
10462      },
10463      "required": [
10464        "start",
10465        "stop"
10466      ],
10467      "type": "object"
10468    },
10469    "ShapeFieldDefWithCondition": {
10470      "$ref": "#/definitions/StringFieldDefWithCondition<TypeForShape>"
10471    },
10472    "ShapeValueDefWithCondition": {
10473      "$ref": "#/definitions/StringValueDefWithCondition<TypeForShape>"
10474    },
10475    "SignalRef": {
10476      "additionalProperties": false,
10477      "properties": {
10478        "signal": {
10479          "type": "string"
10480        }
10481      },
10482      "required": [
10483        "signal"
10484      ],
10485      "type": "object"
10486    },
10487    "SingleDefUnitChannel": {
10488      "enum": [
10489        "x",
10490        "y",
10491        "x2",
10492        "y2",
10493        "longitude",
10494        "latitude",
10495        "longitude2",
10496        "latitude2",
10497        "color",
10498        "fill",
10499        "stroke",
10500        "opacity",
10501        "fillOpacity",
10502        "strokeOpacity",
10503        "strokeWidth",
10504        "size",
10505        "shape",
10506        "key",
10507        "text",
10508        "tooltip",
10509        "href"
10510      ],
10511      "type": "string"
10512    },
10513    "SingleSelection": {
10514      "additionalProperties": false,
10515      "properties": {
10516        "bind": {
10517          "anyOf": [
10518            {
10519              "$ref": "#/definitions/Binding"
10520            },
10521            {
10522              "additionalProperties": {
10523                "$ref": "#/definitions/Binding"
10524              },
10525              "type": "object"
10526            }
10527          ],
10528          "description": "Establish a two-way binding between a single selection and input elements\n(also known as dynamic query widgets). A binding takes the form of\nVega's [input element binding definition](https://vega.github.io/vega/docs/signals/#bind)\nor can be a mapping between projected field/encodings and binding definitions.\n\n__See also:__ [`bind`](https://vega.github.io/vega-lite/docs/bind.html) documentation."
10529        },
10530        "clear": {
10531          "anyOf": [
10532            {
10533              "$ref": "#/definitions/EventStream"
10534            },
10535            {
10536              "type": "boolean"
10537            }
10538          ],
10539          "description": "Clears the selection, emptying it of all values. Can be an\n[EventStream](https://vega.github.io/vega/docs/event-streams/) or `false` to disable.\n\n__Default value:__ `dblclick`.\n\n__See also:__ [`clear`](https://vega.github.io/vega-lite/docs/clear.html) documentation."
10540        },
10541        "empty": {
10542          "description": "By default, `all` data values are considered to lie within an empty selection.\nWhen set to `none`, empty selections contain no data values.",
10543          "enum": [
10544            "all",
10545            "none"
10546          ],
10547          "type": "string"
10548        },
10549        "encodings": {
10550          "description": "An array of encoding channels. The corresponding data field values\nmust match for a data tuple to fall within the selection.\n\n__See also:__ [`encodings`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
10551          "items": {
10552            "$ref": "#/definitions/SingleDefUnitChannel"
10553          },
10554          "type": "array"
10555        },
10556        "fields": {
10557          "description": "An array of field names whose values must match for a data tuple to\nfall within the selection.\n\n__See also:__ [`fields`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
10558          "items": {
10559            "$ref": "#/definitions/FieldName"
10560          },
10561          "type": "array"
10562        },
10563        "init": {
10564          "$ref": "#/definitions/SelectionInitMapping",
10565          "description": "Initialize the selection with a mapping between [projected channels or field names](https://vega.github.io/vega-lite/docs/project.html) and initial values.\n\n__See also:__ [`init`](https://vega.github.io/vega-lite/docs/init.html) documentation."
10566        },
10567        "nearest": {
10568          "description": "When true, an invisible voronoi diagram is computed to accelerate discrete\nselection. The data value _nearest_ the mouse cursor is added to the selection.\n\n__See also:__ [`nearest`](https://vega.github.io/vega-lite/docs/nearest.html) documentation.",
10569          "type": "boolean"
10570        },
10571        "on": {
10572          "$ref": "#/definitions/EventStream",
10573          "description": "A [Vega event stream](https://vega.github.io/vega/docs/event-streams/) (object or selector) that triggers the selection.\nFor interval selections, the event stream must specify a [start and end](https://vega.github.io/vega/docs/event-streams/#between-filters)."
10574        },
10575        "resolve": {
10576          "$ref": "#/definitions/SelectionResolution",
10577          "description": "With layered and multi-view displays, a strategy that determines how\nselections' data queries are resolved when applied in a filter transform,\nconditional encoding rule, or scale domain.\n\n__See also:__ [`resolve`](https://vega.github.io/vega-lite/docs/selection-resolve.html) documentation."
10578        },
10579        "type": {
10580          "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports three selection types:\n\n- `single` -- to select a single discrete data value on `click`.\n- `multi` -- to select multiple discrete data value; the first value is selected on `click` and additional values toggled on shift-`click`.\n- `interval` -- to select a continuous range of data values on `drag`.",
10581          "enum": [
10582            "single"
10583          ],
10584          "type": "string"
10585        }
10586      },
10587      "required": [
10588        "type"
10589      ],
10590      "type": "object"
10591    },
10592    "SingleSelectionConfig": {
10593      "additionalProperties": false,
10594      "properties": {
10595        "bind": {
10596          "anyOf": [
10597            {
10598              "$ref": "#/definitions/Binding"
10599            },
10600            {
10601              "additionalProperties": {
10602                "$ref": "#/definitions/Binding"
10603              },
10604              "type": "object"
10605            }
10606          ],
10607          "description": "Establish a two-way binding between a single selection and input elements\n(also known as dynamic query widgets). A binding takes the form of\nVega's [input element binding definition](https://vega.github.io/vega/docs/signals/#bind)\nor can be a mapping between projected field/encodings and binding definitions.\n\n__See also:__ [`bind`](https://vega.github.io/vega-lite/docs/bind.html) documentation."
10608        },
10609        "clear": {
10610          "anyOf": [
10611            {
10612              "$ref": "#/definitions/EventStream"
10613            },
10614            {
10615              "type": "boolean"
10616            }
10617          ],
10618          "description": "Clears the selection, emptying it of all values. Can be an\n[EventStream](https://vega.github.io/vega/docs/event-streams/) or `false` to disable.\n\n__Default value:__ `dblclick`.\n\n__See also:__ [`clear`](https://vega.github.io/vega-lite/docs/clear.html) documentation."
10619        },
10620        "empty": {
10621          "description": "By default, `all` data values are considered to lie within an empty selection.\nWhen set to `none`, empty selections contain no data values.",
10622          "enum": [
10623            "all",
10624            "none"
10625          ],
10626          "type": "string"
10627        },
10628        "encodings": {
10629          "description": "An array of encoding channels. The corresponding data field values\nmust match for a data tuple to fall within the selection.\n\n__See also:__ [`encodings`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
10630          "items": {
10631            "$ref": "#/definitions/SingleDefUnitChannel"
10632          },
10633          "type": "array"
10634        },
10635        "fields": {
10636          "description": "An array of field names whose values must match for a data tuple to\nfall within the selection.\n\n__See also:__ [`fields`](https://vega.github.io/vega-lite/docs/project.html) documentation.",
10637          "items": {
10638            "$ref": "#/definitions/FieldName"
10639          },
10640          "type": "array"
10641        },
10642        "init": {
10643          "$ref": "#/definitions/SelectionInitMapping",
10644          "description": "Initialize the selection with a mapping between [projected channels or field names](https://vega.github.io/vega-lite/docs/project.html) and initial values.\n\n__See also:__ [`init`](https://vega.github.io/vega-lite/docs/init.html) documentation."
10645        },
10646        "nearest": {
10647          "description": "When true, an invisible voronoi diagram is computed to accelerate discrete\nselection. The data value _nearest_ the mouse cursor is added to the selection.\n\n__See also:__ [`nearest`](https://vega.github.io/vega-lite/docs/nearest.html) documentation.",
10648          "type": "boolean"
10649        },
10650        "on": {
10651          "$ref": "#/definitions/EventStream",
10652          "description": "A [Vega event stream](https://vega.github.io/vega/docs/event-streams/) (object or selector) that triggers the selection.\nFor interval selections, the event stream must specify a [start and end](https://vega.github.io/vega/docs/event-streams/#between-filters)."
10653        },
10654        "resolve": {
10655          "$ref": "#/definitions/SelectionResolution",
10656          "description": "With layered and multi-view displays, a strategy that determines how\nselections' data queries are resolved when applied in a filter transform,\nconditional encoding rule, or scale domain.\n\n__See also:__ [`resolve`](https://vega.github.io/vega-lite/docs/selection-resolve.html) documentation."
10657        }
10658      },
10659      "type": "object"
10660    },
10661    "SingleTimeUnit": {
10662      "anyOf": [
10663        {
10664          "$ref": "#/definitions/LocalSingleTimeUnit"
10665        },
10666        {
10667          "$ref": "#/definitions/UtcSingleTimeUnit"
10668        }
10669      ]
10670    },
10671    "Sort": {
10672      "anyOf": [
10673        {
10674          "$ref": "#/definitions/SortArray"
10675        },
10676        {
10677          "$ref": "#/definitions/SortOrder"
10678        },
10679        {
10680          "$ref": "#/definitions/EncodingSortField"
10681        },
10682        {
10683          "$ref": "#/definitions/SortByEncoding"
10684        },
10685        {
10686          "type": "null"
10687        }
10688      ]
10689    },
10690    "SortArray": {
10691      "anyOf": [
10692        {
10693          "items": {
10694            "type": "number"
10695          },
10696          "type": "array"
10697        },
10698        {
10699          "items": {
10700            "type": "string"
10701          },
10702          "type": "array"
10703        },
10704        {
10705          "items": {
10706            "type": "boolean"
10707          },
10708          "type": "array"
10709        },
10710        {
10711          "items": {
10712            "$ref": "#/definitions/DateTime"
10713          },
10714          "type": "array"
10715        }
10716      ]
10717    },
10718    "SortByEncoding": {
10719      "additionalProperties": false,
10720      "properties": {
10721        "encoding": {
10722          "$ref": "#/definitions/SingleDefUnitChannel",
10723          "description": "The [encoding channel](https://vega.github.io/vega-lite/docs/encoding.html#channels) to sort by (e.g., `\"x\"`, `\"y\"`)"
10724        },
10725        "order": {
10726          "anyOf": [
10727            {
10728              "$ref": "#/definitions/SortOrder"
10729            },
10730            {
10731              "type": "null"
10732            }
10733          ],
10734          "description": "The sort order. One of `\"ascending\"` (default), `\"descending\"`, or `null` (no not sort)."
10735        }
10736      },
10737      "required": [
10738        "encoding"
10739      ],
10740      "type": "object"
10741    },
10742    "SortField": {
10743      "additionalProperties": false,
10744      "description": "A sort definition for transform",
10745      "properties": {
10746        "field": {
10747          "$ref": "#/definitions/FieldName",
10748          "description": "The name of the field to sort."
10749        },
10750        "order": {
10751          "anyOf": [
10752            {
10753              "$ref": "#/definitions/SortOrder"
10754            },
10755            {
10756              "type": "null"
10757            }
10758          ],
10759          "description": "Whether to sort the field in ascending or descending order. One of `\"ascending\"` (default), `\"descending\"`, or `null` (no not sort)."
10760        }
10761      },
10762      "required": [
10763        "field"
10764      ],
10765      "type": "object"
10766    },
10767    "SortOrder": {
10768      "enum": [
10769        "ascending",
10770        "descending"
10771      ],
10772      "type": "string"
10773    },
10774    "SphereGenerator": {
10775      "additionalProperties": false,
10776      "properties": {
10777        "name": {
10778          "description": "Provide a placeholder name and bind data at runtime.",
10779          "type": "string"
10780        },
10781        "sphere": {
10782          "anyOf": [
10783            {
10784              "enum": [
10785                true
10786              ],
10787              "type": "boolean"
10788            },
10789            {
10790              "additionalProperties": false,
10791              "type": "object"
10792            }
10793          ],
10794          "description": "Generate sphere GeoJSON data for the full globe."
10795        }
10796      },
10797      "required": [
10798        "sphere"
10799      ],
10800      "type": "object"
10801    },
10802    "StackOffset": {
10803      "enum": [
10804        "zero",
10805        "center",
10806        "normalize"
10807      ],
10808      "type": "string"
10809    },
10810    "StackTransform": {
10811      "additionalProperties": false,
10812      "properties": {
10813        "as": {
10814          "anyOf": [
10815            {
10816              "$ref": "#/definitions/FieldName"
10817            },
10818            {
10819              "items": {
10820                "$ref": "#/definitions/FieldName"
10821              },
10822              "type": "array"
10823            }
10824          ],
10825          "description": "Output field names. This can be either a string or an array of strings with\ntwo elements denoting the name for the fields for stack start and stack end\nrespectively.\nIf a single string(eg.\"val\") is provided, the end field will be \"val_end\"."
10826        },
10827        "groupby": {
10828          "description": "The data fields to group by.",
10829          "items": {
10830            "$ref": "#/definitions/FieldName"
10831          },
10832          "type": "array"
10833        },
10834        "offset": {
10835          "description": "Mode for stacking marks.\n__Default value:__ `\"zero\"`",
10836          "enum": [
10837            "zero",
10838            "center",
10839            "normalize"
10840          ],
10841          "type": "string"
10842        },
10843        "sort": {
10844          "description": "Field that determines the order of leaves in the stacked charts.",
10845          "items": {
10846            "$ref": "#/definitions/SortField"
10847          },
10848          "type": "array"
10849        },
10850        "stack": {
10851          "$ref": "#/definitions/FieldName",
10852          "description": "The field which is stacked."
10853        }
10854      },
10855      "required": [
10856        "stack",
10857        "groupby",
10858        "as"
10859      ],
10860      "type": "object"
10861    },
10862    "StandardType": {
10863      "enum": [
10864        "quantitative",
10865        "ordinal",
10866        "temporal",
10867        "nominal"
10868      ],
10869      "type": "string"
10870    },
10871    "StringFieldDefWithCondition<TypeForShape>": {
10872      "$ref": "#/definitions/FieldDefWithCondition<MarkPropFieldDef<TypeForShape>,(string|null)>"
10873    },
10874    "StringFieldDefWithCondition": {
10875      "$ref": "#/definitions/FieldDefWithCondition<MarkPropFieldDef,(string|null)>"
10876    },
10877    "StringValueDefWithCondition<TypeForShape>": {
10878      "$ref": "#/definitions/ValueDefWithCondition<MarkPropFieldDef<TypeForShape>,(string|null)>"
10879    },
10880    "StringValueDefWithCondition": {
10881      "$ref": "#/definitions/ValueDefWithCondition<MarkPropFieldDef,(string|null)>"
10882    },
10883    "StrokeCap": {
10884      "enum": [
10885        "butt",
10886        "round",
10887        "square"
10888      ],
10889      "type": "string"
10890    },
10891    "StrokeJoin": {
10892      "enum": [
10893        "miter",
10894        "round",
10895        "bevel"
10896      ],
10897      "type": "string"
10898    },
10899    "StyleConfigIndex": {
10900      "additionalProperties": {
10901        "$ref": "#/definitions/BaseMarkConfig"
10902      },
10903      "type": "object"
10904    },
10905    "SymbolShape": {
10906      "type": "string"
10907    },
10908    "TextBaseline": {
10909      "anyOf": [
10910        {
10911          "enum": [
10912            "alphabetic"
10913          ],
10914          "type": "string"
10915        },
10916        {
10917          "$ref": "#/definitions/Baseline"
10918        }
10919      ]
10920    },
10921    "TextConfig": {
10922      "additionalProperties": false,
10923      "properties": {
10924        "align": {
10925          "$ref": "#/definitions/Align",
10926          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
10927        },
10928        "angle": {
10929          "description": "The rotation angle of the text, in degrees.",
10930          "maximum": 360,
10931          "minimum": 0,
10932          "type": "number"
10933        },
10934        "baseline": {
10935          "$ref": "#/definitions/TextBaseline",
10936          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
10937        },
10938        "color": {
10939          "$ref": "#/definitions/Color",
10940          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
10941        },
10942        "cornerRadius": {
10943          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
10944          "type": "number"
10945        },
10946        "cursor": {
10947          "$ref": "#/definitions/Cursor",
10948          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
10949        },
10950        "dir": {
10951          "$ref": "#/definitions/Dir",
10952          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
10953        },
10954        "dx": {
10955          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
10956          "type": "number"
10957        },
10958        "dy": {
10959          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
10960          "type": "number"
10961        },
10962        "ellipsis": {
10963          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
10964          "type": "string"
10965        },
10966        "fill": {
10967          "$ref": "#/definitions/Color",
10968          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
10969        },
10970        "fillOpacity": {
10971          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
10972          "maximum": 1,
10973          "minimum": 0,
10974          "type": "number"
10975        },
10976        "filled": {
10977          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
10978          "type": "boolean"
10979        },
10980        "font": {
10981          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
10982          "type": "string"
10983        },
10984        "fontSize": {
10985          "description": "The font size, in pixels.",
10986          "type": "number"
10987        },
10988        "fontStyle": {
10989          "$ref": "#/definitions/FontStyle",
10990          "description": "The font style (e.g., `\"italic\"`)."
10991        },
10992        "fontWeight": {
10993          "$ref": "#/definitions/FontWeight",
10994          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
10995        },
10996        "height": {
10997          "description": "Height of the marks.",
10998          "type": "number"
10999        },
11000        "href": {
11001          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
11002          "format": "uri",
11003          "type": "string"
11004        },
11005        "interpolate": {
11006          "$ref": "#/definitions/Interpolate",
11007          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
11008        },
11009        "limit": {
11010          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
11011          "type": "number"
11012        },
11013        "opacity": {
11014          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
11015          "maximum": 1,
11016          "minimum": 0,
11017          "type": "number"
11018        },
11019        "order": {
11020          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
11021          "type": [
11022            "null",
11023            "boolean"
11024          ]
11025        },
11026        "orient": {
11027          "$ref": "#/definitions/Orientation",
11028          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
11029        },
11030        "radius": {
11031          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
11032          "minimum": 0,
11033          "type": "number"
11034        },
11035        "shape": {
11036          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
11037          "type": "string"
11038        },
11039        "shortTimeLabels": {
11040          "description": "Whether month names and weekday names should be abbreviated.",
11041          "type": "boolean"
11042        },
11043        "size": {
11044          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
11045          "minimum": 0,
11046          "type": "number"
11047        },
11048        "stroke": {
11049          "$ref": "#/definitions/Color",
11050          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
11051        },
11052        "strokeCap": {
11053          "$ref": "#/definitions/StrokeCap",
11054          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
11055        },
11056        "strokeDash": {
11057          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
11058          "items": {
11059            "type": "number"
11060          },
11061          "type": "array"
11062        },
11063        "strokeDashOffset": {
11064          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
11065          "type": "number"
11066        },
11067        "strokeJoin": {
11068          "$ref": "#/definitions/StrokeJoin",
11069          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
11070        },
11071        "strokeMiterLimit": {
11072          "description": "The miter limit at which to bevel a line join.",
11073          "type": "number"
11074        },
11075        "strokeOpacity": {
11076          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
11077          "maximum": 1,
11078          "minimum": 0,
11079          "type": "number"
11080        },
11081        "strokeWidth": {
11082          "description": "The stroke width, in pixels.",
11083          "minimum": 0,
11084          "type": "number"
11085        },
11086        "tension": {
11087          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
11088          "maximum": 1,
11089          "minimum": 0,
11090          "type": "number"
11091        },
11092        "text": {
11093          "description": "Placeholder text if the `text` channel is not specified",
11094          "type": "string"
11095        },
11096        "theta": {
11097          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
11098          "type": "number"
11099        },
11100        "tooltip": {
11101          "anyOf": [
11102            {
11103              "$ref": "#/definitions/Value"
11104            },
11105            {
11106              "$ref": "#/definitions/TooltipContent"
11107            },
11108            {
11109              "type": "null"
11110            }
11111          ],
11112          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
11113        },
11114        "width": {
11115          "description": "Width of the marks.",
11116          "type": "number"
11117        },
11118        "x": {
11119          "anyOf": [
11120            {
11121              "type": "number"
11122            },
11123            {
11124              "enum": [
11125                "width"
11126              ],
11127              "type": "string"
11128            }
11129          ],
11130          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
11131        },
11132        "x2": {
11133          "anyOf": [
11134            {
11135              "type": "number"
11136            },
11137            {
11138              "enum": [
11139                "width"
11140              ],
11141              "type": "string"
11142            }
11143          ],
11144          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
11145        },
11146        "y": {
11147          "anyOf": [
11148            {
11149              "type": "number"
11150            },
11151            {
11152              "enum": [
11153                "height"
11154              ],
11155              "type": "string"
11156            }
11157          ],
11158          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
11159        },
11160        "y2": {
11161          "anyOf": [
11162            {
11163              "type": "number"
11164            },
11165            {
11166              "enum": [
11167                "width"
11168              ],
11169              "type": "string"
11170            }
11171          ],
11172          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
11173        }
11174      },
11175      "type": "object"
11176    },
11177    "TextFieldDef": {
11178      "additionalProperties": false,
11179      "properties": {
11180        "aggregate": {
11181          "$ref": "#/definitions/Aggregate",
11182          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
11183        },
11184        "bin": {
11185          "anyOf": [
11186            {
11187              "type": "boolean"
11188            },
11189            {
11190              "$ref": "#/definitions/BinParams"
11191            },
11192            {
11193              "enum": [
11194                "binned"
11195              ],
11196              "type": "string"
11197            },
11198            {
11199              "type": "null"
11200            }
11201          ],
11202          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
11203        },
11204        "field": {
11205          "$ref": "#/definitions/Field",
11206          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
11207        },
11208        "format": {
11209          "description": "The text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n- If the format type is `\"time\"` (e.g., for temporal fields), this is D3's [time format pattern](https://github.com/d3/d3-time-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.\n\n__Default value:__  Derived from [numberFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for number format and from [timeFormat](https://vega.github.io/vega-lite/docs/config.html#format) config for time format.",
11210          "type": "string"
11211        },
11212        "formatType": {
11213          "description": "The format type for labels (`\"number\"` or `\"time\"`).\n\n__Default value:__\n- `\"time\"` for temporal fields and ordinal and nomimal fields with `timeUnit`.\n- `\"number\"` for quantitative fields as well as ordinal and nomimal fields without `timeUnit`.",
11214          "enum": [
11215            "number",
11216            "time"
11217          ],
11218          "type": "string"
11219        },
11220        "timeUnit": {
11221          "$ref": "#/definitions/TimeUnit",
11222          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
11223        },
11224        "title": {
11225          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
11226          "type": [
11227            "string",
11228            "null"
11229          ]
11230        },
11231        "type": {
11232          "$ref": "#/definitions/StandardType",
11233          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
11234        }
11235      },
11236      "required": [
11237        "type"
11238      ],
11239      "type": "object"
11240    },
11241    "TextFieldDefWithCondition": {
11242      "$ref": "#/definitions/FieldDefWithCondition<TextFieldDef,Value>"
11243    },
11244    "TextValueDefWithCondition": {
11245      "$ref": "#/definitions/ValueDefWithCondition<TextFieldDef,Value>"
11246    },
11247    "TickConfig": {
11248      "additionalProperties": false,
11249      "properties": {
11250        "align": {
11251          "$ref": "#/definitions/Align",
11252          "description": "The horizontal alignment of the text. One of `\"left\"`, `\"right\"`, `\"center\"`."
11253        },
11254        "angle": {
11255          "description": "The rotation angle of the text, in degrees.",
11256          "maximum": 360,
11257          "minimum": 0,
11258          "type": "number"
11259        },
11260        "bandSize": {
11261          "description": "The width of the ticks.\n\n__Default value:__  3/4 of rangeStep.",
11262          "minimum": 0,
11263          "type": "number"
11264        },
11265        "baseline": {
11266          "$ref": "#/definitions/TextBaseline",
11267          "description": "The vertical alignment of the text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`.\n\n__Default value:__ `\"middle\"`"
11268        },
11269        "color": {
11270          "$ref": "#/definitions/Color",
11271          "description": "Default color.  Note that `fill` and `stroke` have higher precedence than `color` and will override `color`.\n\n__Default value:__ <span style=\"color: #4682b4;\">&#9632;</span> `\"#4682b4\"`\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config)."
11272        },
11273        "cornerRadius": {
11274          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
11275          "type": "number"
11276        },
11277        "cursor": {
11278          "$ref": "#/definitions/Cursor",
11279          "description": "The mouse cursor used over the mark. Any valid [CSS cursor type](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values) can be used."
11280        },
11281        "dir": {
11282          "$ref": "#/definitions/Dir",
11283          "description": "The direction of the text. One of `\"ltr\"` (left-to-right) or `\"rtl\"` (right-to-left). This property determines on which side is truncated in response to the limit parameter.\n\n__Default value:__ `\"ltr\"`"
11284        },
11285        "dx": {
11286          "description": "The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
11287          "type": "number"
11288        },
11289        "dy": {
11290          "description": "The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the _angle_ property.",
11291          "type": "number"
11292        },
11293        "ellipsis": {
11294          "description": "The ellipsis string for text truncated in response to the limit parameter.\n\n__Default value:__ `\"…\"`",
11295          "type": "string"
11296        },
11297        "fill": {
11298          "$ref": "#/definitions/Color",
11299          "description": "Default Fill Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
11300        },
11301        "fillOpacity": {
11302          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
11303          "maximum": 1,
11304          "minimum": 0,
11305          "type": "number"
11306        },
11307        "filled": {
11308          "description": "Whether the mark's color should be used as fill color instead of stroke color.\n\n__Default value:__ `false` for `point`, `line` and `rule`; otherwise, `true`.\n\n__Note:__ This property cannot be used in a [style config](https://vega.github.io/vega-lite/docs/mark.html#style-config).",
11309          "type": "boolean"
11310        },
11311        "font": {
11312          "description": "The typeface to set the text in (e.g., `\"Helvetica Neue\"`).",
11313          "type": "string"
11314        },
11315        "fontSize": {
11316          "description": "The font size, in pixels.",
11317          "type": "number"
11318        },
11319        "fontStyle": {
11320          "$ref": "#/definitions/FontStyle",
11321          "description": "The font style (e.g., `\"italic\"`)."
11322        },
11323        "fontWeight": {
11324          "$ref": "#/definitions/FontWeight",
11325          "description": "The font weight.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
11326        },
11327        "height": {
11328          "description": "Height of the marks.",
11329          "type": "number"
11330        },
11331        "href": {
11332          "description": "A URL to load upon mouse click. If defined, the mark acts as a hyperlink.",
11333          "format": "uri",
11334          "type": "string"
11335        },
11336        "interpolate": {
11337          "$ref": "#/definitions/Interpolate",
11338          "description": "The line interpolation method to use for line and area marks. One of the following:\n- `\"linear\"`: piecewise linear segments, as in a polyline.\n- `\"linear-closed\"`: close the linear segments to form a polygon.\n- `\"step\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"step-before\"`: alternate between vertical and horizontal segments, as in a step function.\n- `\"step-after\"`: alternate between horizontal and vertical segments, as in a step function.\n- `\"basis\"`: a B-spline, with control point duplication on the ends.\n- `\"basis-open\"`: an open B-spline; may not intersect the start or end.\n- `\"basis-closed\"`: a closed B-spline, as in a loop.\n- `\"cardinal\"`: a Cardinal spline, with control point duplication on the ends.\n- `\"cardinal-open\"`: an open Cardinal spline; may not intersect the start or end, but will intersect other control points.\n- `\"cardinal-closed\"`: a closed Cardinal spline, as in a loop.\n- `\"bundle\"`: equivalent to basis, except the tension parameter is used to straighten the spline.\n- `\"monotone\"`: cubic interpolation that preserves monotonicity in y."
11339        },
11340        "limit": {
11341          "description": "The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit.\n\n__Default value:__ `0`, indicating no limit",
11342          "type": "number"
11343        },
11344        "opacity": {
11345          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
11346          "maximum": 1,
11347          "minimum": 0,
11348          "type": "number"
11349        },
11350        "order": {
11351          "description": "For line and trail marks, this `order` property can be set to `null` or `false` to make the lines use the original order in the data sources.",
11352          "type": [
11353            "null",
11354            "boolean"
11355          ]
11356        },
11357        "orient": {
11358          "$ref": "#/definitions/Orientation",
11359          "description": "The orientation of a non-stacked bar, tick, area, and line charts.\nThe value is either horizontal (default) or vertical.\n- For bar, rule and tick, this determines whether the size of the bar and tick\nshould be applied to x or y dimension.\n- For area, this property determines the orient property of the Vega output.\n- For line and trail marks, this property determines the sort order of the points in the line\nif `config.sortLineBy` is not specified.\nFor stacked charts, this is always determined by the orientation of the stack;\ntherefore explicitly specified value will be ignored."
11360        },
11361        "radius": {
11362          "description": "Polar coordinate radial offset, in pixels, of the text label from the origin determined by the `x` and `y` properties.",
11363          "minimum": 0,
11364          "type": "number"
11365        },
11366        "shape": {
11367          "description": "Shape of the point marks. Supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- the line symbol `\"stroke\"`\n- centered directional shapes `\"arrow\"`, `\"wedge\"`, or `\"triangle\"`\n- a custom [SVG path string](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths) (For correct sizing, custom shape paths should be defined within a square bounding box with coordinates ranging from -1 to 1 along both the x and y dimensions.)\n\n__Default value:__ `\"circle\"`",
11368          "type": "string"
11369        },
11370        "size": {
11371          "description": "Default size for marks.\n- For `point`/`circle`/`square`, this represents the pixel area of the marks. For example: in the case of circles, the radius is determined in part by the square root of the size value.\n- For `bar`, this represents the band size of the bar, in pixels.\n- For `text`, this represents the font size, in pixels.\n\n__Default value:__ `30` for point, circle, square marks; `rangeStep` - 1 for bar marks with discrete dimensions; `5` for bar marks with continuous dimensions; `11` for text marks.",
11372          "minimum": 0,
11373          "type": "number"
11374        },
11375        "stroke": {
11376          "$ref": "#/definitions/Color",
11377          "description": "Default Stroke Color.  This has higher precedence than `config.color`\n\n__Default value:__ (None)"
11378        },
11379        "strokeCap": {
11380          "$ref": "#/definitions/StrokeCap",
11381          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
11382        },
11383        "strokeDash": {
11384          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
11385          "items": {
11386            "type": "number"
11387          },
11388          "type": "array"
11389        },
11390        "strokeDashOffset": {
11391          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
11392          "type": "number"
11393        },
11394        "strokeJoin": {
11395          "$ref": "#/definitions/StrokeJoin",
11396          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
11397        },
11398        "strokeMiterLimit": {
11399          "description": "The miter limit at which to bevel a line join.",
11400          "type": "number"
11401        },
11402        "strokeOpacity": {
11403          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
11404          "maximum": 1,
11405          "minimum": 0,
11406          "type": "number"
11407        },
11408        "strokeWidth": {
11409          "description": "The stroke width, in pixels.",
11410          "minimum": 0,
11411          "type": "number"
11412        },
11413        "tension": {
11414          "description": "Depending on the interpolation type, sets the tension parameter (for line and area marks).",
11415          "maximum": 1,
11416          "minimum": 0,
11417          "type": "number"
11418        },
11419        "text": {
11420          "description": "Placeholder text if the `text` channel is not specified",
11421          "type": "string"
11422        },
11423        "theta": {
11424          "description": "Polar coordinate angle, in radians, of the text label from the origin determined by the `x` and `y` properties. Values for `theta` follow the same convention of `arc` mark `startAngle` and `endAngle` properties: angles are measured in radians, with `0` indicating \"north\".",
11425          "type": "number"
11426        },
11427        "thickness": {
11428          "description": "Thickness of the tick mark.\n\n__Default value:__  `1`",
11429          "minimum": 0,
11430          "type": "number"
11431        },
11432        "tooltip": {
11433          "anyOf": [
11434            {
11435              "$ref": "#/definitions/Value"
11436            },
11437            {
11438              "$ref": "#/definitions/TooltipContent"
11439            },
11440            {
11441              "type": "null"
11442            }
11443          ],
11444          "description": "The tooltip text string to show upon mouse hover or an object defining which fields should the tooltip be derived from.\n\n- If `tooltip` is `{\"content\": \"encoding\"}`, then all fields from `encoding` will be used.\n- If `tooltip` is `{\"content\": \"data\"}`, then all fields that appear in the highlighted data point will be used.\n- If set to `null`, then no tooltip will be used."
11445        },
11446        "width": {
11447          "description": "Width of the marks.",
11448          "type": "number"
11449        },
11450        "x": {
11451          "anyOf": [
11452            {
11453              "type": "number"
11454            },
11455            {
11456              "enum": [
11457                "width"
11458              ],
11459              "type": "string"
11460            }
11461          ],
11462          "description": "X coordinates of the marks, or width of horizontal `\"bar\"` and `\"area\"` without specified `x2` or `width`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
11463        },
11464        "x2": {
11465          "anyOf": [
11466            {
11467              "type": "number"
11468            },
11469            {
11470              "enum": [
11471                "width"
11472              ],
11473              "type": "string"
11474            }
11475          ],
11476          "description": "X2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"width\"` for the width of the plot."
11477        },
11478        "y": {
11479          "anyOf": [
11480            {
11481              "type": "number"
11482            },
11483            {
11484              "enum": [
11485                "height"
11486              ],
11487              "type": "string"
11488            }
11489          ],
11490          "description": "Y coordinates of the marks, or height of vertical `\"bar\"` and `\"area\"` without specified `y2` or `height`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
11491        },
11492        "y2": {
11493          "anyOf": [
11494            {
11495              "type": "number"
11496            },
11497            {
11498              "enum": [
11499                "width"
11500              ],
11501              "type": "string"
11502            }
11503          ],
11504          "description": "Y2 coordinates for ranged `\"area\"`, `\"bar\"`, `\"rect\"`, and  `\"rule\"`.\n\nThe `value` of this channel can be a number or a string `\"height\"` for the height of the plot."
11505        }
11506      },
11507      "type": "object"
11508    },
11509    "TimeUnit": {
11510      "anyOf": [
11511        {
11512          "$ref": "#/definitions/SingleTimeUnit"
11513        },
11514        {
11515          "$ref": "#/definitions/MultiTimeUnit"
11516        }
11517      ]
11518    },
11519    "TimeUnitTransform": {
11520      "additionalProperties": false,
11521      "properties": {
11522        "as": {
11523          "$ref": "#/definitions/FieldName",
11524          "description": "The output field to write the timeUnit value."
11525        },
11526        "field": {
11527          "$ref": "#/definitions/FieldName",
11528          "description": "The data field to apply time unit."
11529        },
11530        "timeUnit": {
11531          "$ref": "#/definitions/TimeUnit",
11532          "description": "The timeUnit."
11533        }
11534      },
11535      "required": [
11536        "timeUnit",
11537        "field",
11538        "as"
11539      ],
11540      "type": "object"
11541    },
11542    "TitleAnchor": {
11543      "enum": [
11544        null,
11545        "start",
11546        "middle",
11547        "end"
11548      ],
11549      "type": [
11550        "null",
11551        "string"
11552      ]
11553    },
11554    "TitleConfig": {
11555      "$ref": "#/definitions/BaseTitleConfig"
11556    },
11557    "TitleFrame": {
11558      "enum": [
11559        "bounds",
11560        "group"
11561      ],
11562      "type": "string"
11563    },
11564    "TitleOrient": {
11565      "enum": [
11566        "none",
11567        "left",
11568        "right",
11569        "top",
11570        "bottom"
11571      ],
11572      "type": "string"
11573    },
11574    "TitleParams": {
11575      "additionalProperties": false,
11576      "properties": {
11577        "align": {
11578          "$ref": "#/definitions/Align"
11579        },
11580        "anchor": {
11581          "$ref": "#/definitions/TitleAnchor",
11582          "description": "The anchor position for placing the title. One of `\"start\"`, `\"middle\"`, or `\"end\"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title.\n\n__Default value:__ `\"middle\"` for [single](https://vega.github.io/vega-lite/docs/spec.html) and [layered](https://vega.github.io/vega-lite/docs/layer.html) views.\n`\"start\"` for other composite views.\n\n__Note:__ [For now](https://github.com/vega/vega-lite/issues/2875), `anchor` is only customizable only for [single](https://vega.github.io/vega-lite/docs/spec.html) and [layered](https://vega.github.io/vega-lite/docs/layer.html) views.  For other composite views, `anchor` is always `\"start\"`."
11583        },
11584        "angle": {
11585          "description": "Angle in degrees of title text.",
11586          "type": "number"
11587        },
11588        "baseline": {
11589          "$ref": "#/definitions/TextBaseline",
11590          "description": "Vertical text baseline for title text. One of `\"top\"`, `\"middle\"`, `\"bottom\"`, or `\"alphabetic\"`."
11591        },
11592        "color": {
11593          "$ref": "#/definitions/Color",
11594          "description": "Text color for title text."
11595        },
11596        "dx": {
11597          "description": "Delta offset for title text x-coordinate.",
11598          "type": "number"
11599        },
11600        "dy": {
11601          "description": "Delta offset for title text y-coordinate.",
11602          "type": "number"
11603        },
11604        "font": {
11605          "description": "Font name for title text.",
11606          "type": "string"
11607        },
11608        "fontSize": {
11609          "description": "Font size in pixels for title text.\n\n__Default value:__ `10`.",
11610          "minimum": 0,
11611          "type": "number"
11612        },
11613        "fontStyle": {
11614          "$ref": "#/definitions/FontStyle",
11615          "description": "Font style for title text."
11616        },
11617        "fontWeight": {
11618          "$ref": "#/definitions/FontWeight",
11619          "description": "Font weight for title text.\nThis can be either a string (e.g `\"bold\"`, `\"normal\"`) or a number (`100`, `200`, `300`, ..., `900` where `\"normal\"` = `400` and `\"bold\"` = `700`)."
11620        },
11621        "frame": {
11622          "$ref": "#/definitions/TitleFrame",
11623          "description": "The reference frame for the anchor position, one of `\"bounds\"` (to anchor relative to the full bounding box) or `\"group\"` (to anchor relative to the group width or height)."
11624        },
11625        "limit": {
11626          "description": "The maximum allowed length in pixels of legend labels.",
11627          "minimum": 0,
11628          "type": "number"
11629        },
11630        "offset": {
11631          "description": "The orthogonal offset in pixels by which to displace the title from its position along the edge of the chart.",
11632          "type": "number"
11633        },
11634        "orient": {
11635          "$ref": "#/definitions/TitleOrient",
11636          "description": "Default title orientation (`\"top\"`, `\"bottom\"`, `\"left\"`, or `\"right\"`)"
11637        },
11638        "style": {
11639          "anyOf": [
11640            {
11641              "type": "string"
11642            },
11643            {
11644              "items": {
11645                "type": "string"
11646              },
11647              "type": "array"
11648            }
11649          ],
11650          "description": "A [mark style property](https://vega.github.io/vega-lite/docs/config.html#style) to apply to the title text mark.\n\n__Default value:__ `\"group-title\"`."
11651        },
11652        "text": {
11653          "description": "The title text.",
11654          "type": "string"
11655        },
11656        "zindex": {
11657          "description": "The integer z-index indicating the layering of the title group relative to other axis, mark and legend groups.\n\n__Default value:__ `0`.",
11658          "minimum": 0,
11659          "type": "number"
11660        }
11661      },
11662      "required": [
11663        "text"
11664      ],
11665      "type": "object"
11666    },
11667    "TooltipContent": {
11668      "additionalProperties": false,
11669      "properties": {
11670        "content": {
11671          "enum": [
11672            "encoding",
11673            "data"
11674          ],
11675          "type": "string"
11676        }
11677      },
11678      "required": [
11679        "content"
11680      ],
11681      "type": "object"
11682    },
11683    "TopLevelConcatSpec": {
11684      "additionalProperties": false,
11685      "properties": {
11686        "$schema": {
11687          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
11688          "format": "uri",
11689          "type": "string"
11690        },
11691        "align": {
11692          "anyOf": [
11693            {
11694              "$ref": "#/definitions/LayoutAlign"
11695            },
11696            {
11697              "$ref": "#/definitions/RowCol<LayoutAlign>"
11698            }
11699          ],
11700          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
11701        },
11702        "autosize": {
11703          "anyOf": [
11704            {
11705              "$ref": "#/definitions/AutosizeType"
11706            },
11707            {
11708              "$ref": "#/definitions/AutoSizeParams"
11709            }
11710          ],
11711          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
11712        },
11713        "background": {
11714          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
11715          "type": "string"
11716        },
11717        "bounds": {
11718          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
11719          "enum": [
11720            "full",
11721            "flush"
11722          ],
11723          "type": "string"
11724        },
11725        "center": {
11726          "anyOf": [
11727            {
11728              "type": "boolean"
11729            },
11730            {
11731              "$ref": "#/definitions/RowCol<boolean>"
11732            }
11733          ],
11734          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
11735        },
11736        "columns": {
11737          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
11738          "type": "number"
11739        },
11740        "concat": {
11741          "description": "A list of views to be concatenated.",
11742          "items": {
11743            "$ref": "#/definitions/Spec"
11744          },
11745          "type": "array"
11746        },
11747        "config": {
11748          "$ref": "#/definitions/Config",
11749          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
11750        },
11751        "data": {
11752          "anyOf": [
11753            {
11754              "$ref": "#/definitions/Data"
11755            },
11756            {
11757              "type": "null"
11758            }
11759          ],
11760          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
11761        },
11762        "datasets": {
11763          "$ref": "#/definitions/Datasets",
11764          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
11765        },
11766        "description": {
11767          "description": "Description of this mark for commenting purpose.",
11768          "type": "string"
11769        },
11770        "name": {
11771          "description": "Name of the visualization for later reference.",
11772          "type": "string"
11773        },
11774        "padding": {
11775          "$ref": "#/definitions/Padding",
11776          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
11777        },
11778        "resolve": {
11779          "$ref": "#/definitions/Resolve",
11780          "description": "Scale, axis, and legend resolutions for view composition specifications."
11781        },
11782        "spacing": {
11783          "anyOf": [
11784            {
11785              "type": "number"
11786            },
11787            {
11788              "$ref": "#/definitions/RowCol<number>"
11789            }
11790          ],
11791          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
11792        },
11793        "title": {
11794          "anyOf": [
11795            {
11796              "type": "string"
11797            },
11798            {
11799              "$ref": "#/definitions/TitleParams"
11800            }
11801          ],
11802          "description": "Title for the plot."
11803        },
11804        "transform": {
11805          "description": "An array of data transformations such as filter and new field calculation.",
11806          "items": {
11807            "$ref": "#/definitions/Transform"
11808          },
11809          "type": "array"
11810        },
11811        "usermeta": {
11812          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
11813          "type": "object"
11814        }
11815      },
11816      "required": [
11817        "concat"
11818      ],
11819      "type": "object"
11820    },
11821    "TopLevelHConcatSpec": {
11822      "additionalProperties": false,
11823      "properties": {
11824        "$schema": {
11825          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
11826          "format": "uri",
11827          "type": "string"
11828        },
11829        "autosize": {
11830          "anyOf": [
11831            {
11832              "$ref": "#/definitions/AutosizeType"
11833            },
11834            {
11835              "$ref": "#/definitions/AutoSizeParams"
11836            }
11837          ],
11838          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
11839        },
11840        "background": {
11841          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
11842          "type": "string"
11843        },
11844        "bounds": {
11845          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
11846          "enum": [
11847            "full",
11848            "flush"
11849          ],
11850          "type": "string"
11851        },
11852        "center": {
11853          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\n__Default value:__ `false`",
11854          "type": "boolean"
11855        },
11856        "config": {
11857          "$ref": "#/definitions/Config",
11858          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
11859        },
11860        "data": {
11861          "anyOf": [
11862            {
11863              "$ref": "#/definitions/Data"
11864            },
11865            {
11866              "type": "null"
11867            }
11868          ],
11869          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
11870        },
11871        "datasets": {
11872          "$ref": "#/definitions/Datasets",
11873          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
11874        },
11875        "description": {
11876          "description": "Description of this mark for commenting purpose.",
11877          "type": "string"
11878        },
11879        "hconcat": {
11880          "description": "A list of views to be concatenated and put into a row.",
11881          "items": {
11882            "$ref": "#/definitions/Spec"
11883          },
11884          "type": "array"
11885        },
11886        "name": {
11887          "description": "Name of the visualization for later reference.",
11888          "type": "string"
11889        },
11890        "padding": {
11891          "$ref": "#/definitions/Padding",
11892          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
11893        },
11894        "resolve": {
11895          "$ref": "#/definitions/Resolve",
11896          "description": "Scale, axis, and legend resolutions for view composition specifications."
11897        },
11898        "spacing": {
11899          "description": "The spacing in pixels between sub-views of the concat operator.\n\n__Default value__: `10`",
11900          "type": "number"
11901        },
11902        "title": {
11903          "anyOf": [
11904            {
11905              "type": "string"
11906            },
11907            {
11908              "$ref": "#/definitions/TitleParams"
11909            }
11910          ],
11911          "description": "Title for the plot."
11912        },
11913        "transform": {
11914          "description": "An array of data transformations such as filter and new field calculation.",
11915          "items": {
11916            "$ref": "#/definitions/Transform"
11917          },
11918          "type": "array"
11919        },
11920        "usermeta": {
11921          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
11922          "type": "object"
11923        }
11924      },
11925      "required": [
11926        "hconcat"
11927      ],
11928      "type": "object"
11929    },
11930    "TopLevelRepeatSpec": {
11931      "additionalProperties": false,
11932      "properties": {
11933        "$schema": {
11934          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
11935          "format": "uri",
11936          "type": "string"
11937        },
11938        "align": {
11939          "anyOf": [
11940            {
11941              "$ref": "#/definitions/LayoutAlign"
11942            },
11943            {
11944              "$ref": "#/definitions/RowCol<LayoutAlign>"
11945            }
11946          ],
11947          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
11948        },
11949        "autosize": {
11950          "anyOf": [
11951            {
11952              "$ref": "#/definitions/AutosizeType"
11953            },
11954            {
11955              "$ref": "#/definitions/AutoSizeParams"
11956            }
11957          ],
11958          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
11959        },
11960        "background": {
11961          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
11962          "type": "string"
11963        },
11964        "bounds": {
11965          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
11966          "enum": [
11967            "full",
11968            "flush"
11969          ],
11970          "type": "string"
11971        },
11972        "center": {
11973          "anyOf": [
11974            {
11975              "type": "boolean"
11976            },
11977            {
11978              "$ref": "#/definitions/RowCol<boolean>"
11979            }
11980          ],
11981          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
11982        },
11983        "columns": {
11984          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
11985          "type": "number"
11986        },
11987        "config": {
11988          "$ref": "#/definitions/Config",
11989          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
11990        },
11991        "data": {
11992          "anyOf": [
11993            {
11994              "$ref": "#/definitions/Data"
11995            },
11996            {
11997              "type": "null"
11998            }
11999          ],
12000          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
12001        },
12002        "datasets": {
12003          "$ref": "#/definitions/Datasets",
12004          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
12005        },
12006        "description": {
12007          "description": "Description of this mark for commenting purpose.",
12008          "type": "string"
12009        },
12010        "name": {
12011          "description": "Name of the visualization for later reference.",
12012          "type": "string"
12013        },
12014        "padding": {
12015          "$ref": "#/definitions/Padding",
12016          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
12017        },
12018        "repeat": {
12019          "anyOf": [
12020            {
12021              "items": {
12022                "type": "string"
12023              },
12024              "type": "array"
12025            },
12026            {
12027              "$ref": "#/definitions/RepeatMapping"
12028            }
12029          ],
12030          "description": "Definition for fields to be repeated.  One of:\n1) An array of fields to be repeated.  If `\"repeat\"` is an array, the field can be referred using `{\"repeat\": \"repeat\"}`\n2) An object that mapped `\"row\"` and/or `\"column\"` to the listed of fields to be repeated along the particular orientations. The objects `{\"repeat\": \"row\"}` and `{\"repeat\": \"column\"}` can be used to refer to the repeated field respectively."
12031        },
12032        "resolve": {
12033          "$ref": "#/definitions/Resolve",
12034          "description": "Scale, axis, and legend resolutions for view composition specifications."
12035        },
12036        "spacing": {
12037          "anyOf": [
12038            {
12039              "type": "number"
12040            },
12041            {
12042              "$ref": "#/definitions/RowCol<number>"
12043            }
12044          ],
12045          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
12046        },
12047        "spec": {
12048          "$ref": "#/definitions/Spec",
12049          "description": "A specification of the view that gets repeated."
12050        },
12051        "title": {
12052          "anyOf": [
12053            {
12054              "type": "string"
12055            },
12056            {
12057              "$ref": "#/definitions/TitleParams"
12058            }
12059          ],
12060          "description": "Title for the plot."
12061        },
12062        "transform": {
12063          "description": "An array of data transformations such as filter and new field calculation.",
12064          "items": {
12065            "$ref": "#/definitions/Transform"
12066          },
12067          "type": "array"
12068        },
12069        "usermeta": {
12070          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
12071          "type": "object"
12072        }
12073      },
12074      "required": [
12075        "repeat",
12076        "spec"
12077      ],
12078      "type": "object"
12079    },
12080    "TopLevelVConcatSpec": {
12081      "additionalProperties": false,
12082      "properties": {
12083        "$schema": {
12084          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
12085          "format": "uri",
12086          "type": "string"
12087        },
12088        "autosize": {
12089          "anyOf": [
12090            {
12091              "$ref": "#/definitions/AutosizeType"
12092            },
12093            {
12094              "$ref": "#/definitions/AutoSizeParams"
12095            }
12096          ],
12097          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
12098        },
12099        "background": {
12100          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
12101          "type": "string"
12102        },
12103        "bounds": {
12104          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
12105          "enum": [
12106            "full",
12107            "flush"
12108          ],
12109          "type": "string"
12110        },
12111        "center": {
12112          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\n__Default value:__ `false`",
12113          "type": "boolean"
12114        },
12115        "config": {
12116          "$ref": "#/definitions/Config",
12117          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
12118        },
12119        "data": {
12120          "anyOf": [
12121            {
12122              "$ref": "#/definitions/Data"
12123            },
12124            {
12125              "type": "null"
12126            }
12127          ],
12128          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
12129        },
12130        "datasets": {
12131          "$ref": "#/definitions/Datasets",
12132          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
12133        },
12134        "description": {
12135          "description": "Description of this mark for commenting purpose.",
12136          "type": "string"
12137        },
12138        "name": {
12139          "description": "Name of the visualization for later reference.",
12140          "type": "string"
12141        },
12142        "padding": {
12143          "$ref": "#/definitions/Padding",
12144          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
12145        },
12146        "resolve": {
12147          "$ref": "#/definitions/Resolve",
12148          "description": "Scale, axis, and legend resolutions for view composition specifications."
12149        },
12150        "spacing": {
12151          "description": "The spacing in pixels between sub-views of the concat operator.\n\n__Default value__: `10`",
12152          "type": "number"
12153        },
12154        "title": {
12155          "anyOf": [
12156            {
12157              "type": "string"
12158            },
12159            {
12160              "$ref": "#/definitions/TitleParams"
12161            }
12162          ],
12163          "description": "Title for the plot."
12164        },
12165        "transform": {
12166          "description": "An array of data transformations such as filter and new field calculation.",
12167          "items": {
12168            "$ref": "#/definitions/Transform"
12169          },
12170          "type": "array"
12171        },
12172        "usermeta": {
12173          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
12174          "type": "object"
12175        },
12176        "vconcat": {
12177          "description": "A list of views to be concatenated and put into a column.",
12178          "items": {
12179            "$ref": "#/definitions/Spec"
12180          },
12181          "type": "array"
12182        }
12183      },
12184      "required": [
12185        "vconcat"
12186      ],
12187      "type": "object"
12188    },
12189    "TopLevelLayerSpec": {
12190      "additionalProperties": false,
12191      "properties": {
12192        "$schema": {
12193          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
12194          "format": "uri",
12195          "type": "string"
12196        },
12197        "autosize": {
12198          "anyOf": [
12199            {
12200              "$ref": "#/definitions/AutosizeType"
12201            },
12202            {
12203              "$ref": "#/definitions/AutoSizeParams"
12204            }
12205          ],
12206          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
12207        },
12208        "background": {
12209          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
12210          "type": "string"
12211        },
12212        "config": {
12213          "$ref": "#/definitions/Config",
12214          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
12215        },
12216        "data": {
12217          "anyOf": [
12218            {
12219              "$ref": "#/definitions/Data"
12220            },
12221            {
12222              "type": "null"
12223            }
12224          ],
12225          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
12226        },
12227        "datasets": {
12228          "$ref": "#/definitions/Datasets",
12229          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
12230        },
12231        "description": {
12232          "description": "Description of this mark for commenting purpose.",
12233          "type": "string"
12234        },
12235        "encoding": {
12236          "$ref": "#/definitions/Encoding",
12237          "description": "A shared key-value mapping between encoding channels and definition of fields in the underlying layers."
12238        },
12239        "height": {
12240          "description": "The height of a visualization.\n\n__Default value:__\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its y-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For y-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the height is [determined by the range step, paddings, and the cardinality of the field mapped to y-channel](https://vega.github.io/vega-lite/docs/scale.html#band). Otherwise, if the `rangeStep` is `null`, the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `y` channel, the `height` will be the value of `rangeStep`.\n\n__Note__: For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the height of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
12241          "type": "number"
12242        },
12243        "layer": {
12244          "description": "Layer or single view specifications to be layered.\n\n__Note__: Specifications inside `layer` cannot use `row` and `column` channels as layering facet specifications is not allowed. Instead, use the [facet operator](https://vega.github.io/vega-lite/docs/facet.html) and place a layer inside a facet.",
12245          "items": {
12246            "anyOf": [
12247              {
12248                "$ref": "#/definitions/LayerSpec"
12249              },
12250              {
12251                "$ref": "#/definitions/UnitSpec"
12252              }
12253            ]
12254          },
12255          "type": "array"
12256        },
12257        "name": {
12258          "description": "Name of the visualization for later reference.",
12259          "type": "string"
12260        },
12261        "padding": {
12262          "$ref": "#/definitions/Padding",
12263          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
12264        },
12265        "projection": {
12266          "$ref": "#/definitions/Projection",
12267          "description": "An object defining properties of the geographic projection shared by underlying layers."
12268        },
12269        "resolve": {
12270          "$ref": "#/definitions/Resolve",
12271          "description": "Scale, axis, and legend resolutions for view composition specifications."
12272        },
12273        "title": {
12274          "anyOf": [
12275            {
12276              "type": "string"
12277            },
12278            {
12279              "$ref": "#/definitions/TitleParams"
12280            }
12281          ],
12282          "description": "Title for the plot."
12283        },
12284        "transform": {
12285          "description": "An array of data transformations such as filter and new field calculation.",
12286          "items": {
12287            "$ref": "#/definitions/Transform"
12288          },
12289          "type": "array"
12290        },
12291        "usermeta": {
12292          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
12293          "type": "object"
12294        },
12295        "view": {
12296          "$ref": "#/definitions/ViewBackground",
12297          "description": "An object defining the view background's fill and stroke.\n\n__Default value:__ none (transparent)"
12298        },
12299        "width": {
12300          "description": "The width of a visualization.\n\n__Default value:__ This will be determined by the following rules:\n\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its x-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For x-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the width is [determined by the range step, paddings, and the cardinality of the field mapped to x-channel](https://vega.github.io/vega-lite/docs/scale.html#band).   Otherwise, if the `rangeStep` is `null`, the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `x` channel, the `width` will be the value of [`config.scale.textXRangeStep`](https://vega.github.io/vega-lite/docs/size.html#default-width-and-height) for `text` mark and the value of `rangeStep` for other marks.\n\n__Note:__ For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the width of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
12301          "type": "number"
12302        }
12303      },
12304      "required": [
12305        "layer"
12306      ],
12307      "type": "object"
12308    },
12309    "TopLevelFacetSpec": {
12310      "additionalProperties": false,
12311      "properties": {
12312        "$schema": {
12313          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
12314          "format": "uri",
12315          "type": "string"
12316        },
12317        "align": {
12318          "anyOf": [
12319            {
12320              "$ref": "#/definitions/LayoutAlign"
12321            },
12322            {
12323              "$ref": "#/definitions/RowCol<LayoutAlign>"
12324            }
12325          ],
12326          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
12327        },
12328        "autosize": {
12329          "anyOf": [
12330            {
12331              "$ref": "#/definitions/AutosizeType"
12332            },
12333            {
12334              "$ref": "#/definitions/AutoSizeParams"
12335            }
12336          ],
12337          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
12338        },
12339        "background": {
12340          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
12341          "type": "string"
12342        },
12343        "bounds": {
12344          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
12345          "enum": [
12346            "full",
12347            "flush"
12348          ],
12349          "type": "string"
12350        },
12351        "center": {
12352          "anyOf": [
12353            {
12354              "type": "boolean"
12355            },
12356            {
12357              "$ref": "#/definitions/RowCol<boolean>"
12358            }
12359          ],
12360          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
12361        },
12362        "columns": {
12363          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
12364          "type": "number"
12365        },
12366        "config": {
12367          "$ref": "#/definitions/Config",
12368          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
12369        },
12370        "data": {
12371          "anyOf": [
12372            {
12373              "$ref": "#/definitions/Data"
12374            },
12375            {
12376              "type": "null"
12377            }
12378          ],
12379          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
12380        },
12381        "datasets": {
12382          "$ref": "#/definitions/Datasets",
12383          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
12384        },
12385        "description": {
12386          "description": "Description of this mark for commenting purpose.",
12387          "type": "string"
12388        },
12389        "facet": {
12390          "anyOf": [
12391            {
12392              "$ref": "#/definitions/FacetFieldDef"
12393            },
12394            {
12395              "$ref": "#/definitions/FacetMapping"
12396            }
12397          ],
12398          "description": "Definition for how to facet the data.  One of:\n1) [a field definition for faceting the plot by one field](https://vega.github.io/vega-lite/docs/facet.html#field-def)\n2) [An object that maps `row` and `column` channels to their field definitions](https://vega.github.io/vega-lite/docs/facet.html#mapping)"
12399        },
12400        "name": {
12401          "description": "Name of the visualization for later reference.",
12402          "type": "string"
12403        },
12404        "padding": {
12405          "$ref": "#/definitions/Padding",
12406          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
12407        },
12408        "resolve": {
12409          "$ref": "#/definitions/Resolve",
12410          "description": "Scale, axis, and legend resolutions for view composition specifications."
12411        },
12412        "spacing": {
12413          "anyOf": [
12414            {
12415              "type": "number"
12416            },
12417            {
12418              "$ref": "#/definitions/RowCol<number>"
12419            }
12420          ],
12421          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
12422        },
12423        "spec": {
12424          "anyOf": [
12425            {
12426              "$ref": "#/definitions/LayerSpec"
12427            },
12428            {
12429              "$ref": "#/definitions/FacetedUnitSpec"
12430            }
12431          ],
12432          "description": "A specification of the view that gets faceted."
12433        },
12434        "title": {
12435          "anyOf": [
12436            {
12437              "type": "string"
12438            },
12439            {
12440              "$ref": "#/definitions/TitleParams"
12441            }
12442          ],
12443          "description": "Title for the plot."
12444        },
12445        "transform": {
12446          "description": "An array of data transformations such as filter and new field calculation.",
12447          "items": {
12448            "$ref": "#/definitions/Transform"
12449          },
12450          "type": "array"
12451        },
12452        "usermeta": {
12453          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
12454          "type": "object"
12455        }
12456      },
12457      "required": [
12458        "data",
12459        "facet",
12460        "spec"
12461      ],
12462      "type": "object"
12463    },
12464    "TopLevelSpec": {
12465      "anyOf": [
12466        {
12467          "$ref": "#/definitions/TopLevelUnitSpec"
12468        },
12469        {
12470          "$ref": "#/definitions/TopLevelFacetSpec"
12471        },
12472        {
12473          "$ref": "#/definitions/TopLevelLayerSpec"
12474        },
12475        {
12476          "$ref": "#/definitions/TopLevelRepeatSpec"
12477        },
12478        {
12479          "$ref": "#/definitions/TopLevelConcatSpec"
12480        },
12481        {
12482          "$ref": "#/definitions/TopLevelVConcatSpec"
12483        },
12484        {
12485          "$ref": "#/definitions/TopLevelHConcatSpec"
12486        }
12487      ],
12488      "description": "A Vega-Lite top-level specification.\nThis is the root class for all Vega-Lite specifications.\n(The json schema is generated from this type.)"
12489    },
12490    "TopLevelUnitSpec": {
12491      "additionalProperties": false,
12492      "properties": {
12493        "$schema": {
12494          "description": "URL to [JSON schema](http://json-schema.org/) for a Vega-Lite specification. Unless you have a reason to change this, use `https://vega.github.io/schema/vega-lite/v3.json`. Setting the `$schema` property allows automatic validation and autocomplete in editors that support JSON schema.",
12495          "format": "uri",
12496          "type": "string"
12497        },
12498        "align": {
12499          "anyOf": [
12500            {
12501              "$ref": "#/definitions/LayoutAlign"
12502            },
12503            {
12504              "$ref": "#/definitions/RowCol<LayoutAlign>"
12505            }
12506          ],
12507          "description": "The alignment to apply to grid rows and columns.\nThe supported string values are `\"all\"`, `\"each\"`, and `\"none\"`.\n\n- For `\"none\"`, a flow layout will be used, in which adjacent subviews are simply placed one after the other.\n- For `\"each\"`, subviews will be aligned into a clean grid structure, but each row or column may be of variable size.\n- For `\"all\"`, subviews will be aligned and each row or column will be sized identically based on the maximum observed size. String values for this property will be applied to both grid rows and columns.\n\nAlternatively, an object value of the form `{\"row\": string, \"column\": string}` can be used to supply different alignments for rows and columns.\n\n__Default value:__ `\"all\"`."
12508        },
12509        "autosize": {
12510          "anyOf": [
12511            {
12512              "$ref": "#/definitions/AutosizeType"
12513            },
12514            {
12515              "$ref": "#/definitions/AutoSizeParams"
12516            }
12517          ],
12518          "description": "Sets how the visualization size should be determined. If a string, should be one of `\"pad\"`, `\"fit\"` or `\"none\"`.\nObject values can additionally specify parameters for content sizing and automatic resizing.\n`\"fit\"` is only supported for single and layered views that don't use `rangeStep`.\n\n__Default value__: `pad`"
12519        },
12520        "background": {
12521          "description": "CSS color property to use as the background of the entire view.\n\n__Default value:__ none (transparent)",
12522          "type": "string"
12523        },
12524        "bounds": {
12525          "description": "The bounds calculation method to use for determining the extent of a sub-plot. One of `full` (the default) or `flush`.\n\n- If set to `full`, the entire calculated bounds (including axes, title, and legend) will be used.\n- If set to `flush`, only the specified width and height values for the sub-view will be used. The `flush` setting can be useful when attempting to place sub-plots without axes or legends into a uniform grid structure.\n\n__Default value:__ `\"full\"`",
12526          "enum": [
12527            "full",
12528            "flush"
12529          ],
12530          "type": "string"
12531        },
12532        "center": {
12533          "anyOf": [
12534            {
12535              "type": "boolean"
12536            },
12537            {
12538              "$ref": "#/definitions/RowCol<boolean>"
12539            }
12540          ],
12541          "description": "Boolean flag indicating if subviews should be centered relative to their respective rows or columns.\n\nAn object value of the form `{\"row\": boolean, \"column\": boolean}` can be used to supply different centering values for rows and columns.\n\n__Default value:__ `false`"
12542        },
12543        "columns": {
12544          "description": "The number of columns to include in the view composition layout.\n\n__Default value__: `undefined` -- An infinite number of columns (a single row) will be assumed. This is equivalent to\n`hconcat` (for `concat`) and to using the `column` channel (for `facet` and `repeat`).\n\n__Note__:\n\n1) This property is only for:\n- the general (wrappable) `concat` operator (not `hconcat`/`vconcat`)\n- the `facet` and `repeat` operator with one field/repetition definition (without row/column nesting)\n\n2) Setting the `columns` to `1` is equivalent to `vconcat` (for `concat`) and to using the `row` channel (for `facet` and `repeat`).",
12545          "type": "number"
12546        },
12547        "config": {
12548          "$ref": "#/definitions/Config",
12549          "description": "Vega-Lite configuration object.  This property can only be defined at the top-level of a specification."
12550        },
12551        "data": {
12552          "anyOf": [
12553            {
12554              "$ref": "#/definitions/Data"
12555            },
12556            {
12557              "type": "null"
12558            }
12559          ],
12560          "description": "An object describing the data source. Set to `null` to ignore the parent's data source. If no data is set, it is derived from the parent."
12561        },
12562        "datasets": {
12563          "$ref": "#/definitions/Datasets",
12564          "description": "A global data store for named datasets. This is a mapping from names to inline datasets.\nThis can be an array of objects or primitive values or a string. Arrays of primitive values are ingested as objects with a `data` property."
12565        },
12566        "description": {
12567          "description": "Description of this mark for commenting purpose.",
12568          "type": "string"
12569        },
12570        "encoding": {
12571          "$ref": "#/definitions/FacetedEncoding",
12572          "description": "A key-value mapping between encoding channels and definition of fields."
12573        },
12574        "height": {
12575          "description": "The height of a visualization.\n\n__Default value:__\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its y-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For y-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the height is [determined by the range step, paddings, and the cardinality of the field mapped to y-channel](https://vega.github.io/vega-lite/docs/scale.html#band). Otherwise, if the `rangeStep` is `null`, the height will be the value of [`config.view.height`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `y` channel, the `height` will be the value of `rangeStep`.\n\n__Note__: For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the height of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
12576          "type": "number"
12577        },
12578        "mark": {
12579          "$ref": "#/definitions/AnyMark",
12580          "description": "A string describing the mark type (one of `\"bar\"`, `\"circle\"`, `\"square\"`, `\"tick\"`, `\"line\"`,\n`\"area\"`, `\"point\"`, `\"rule\"`, `\"geoshape\"`, and `\"text\"`) or a [mark definition object](https://vega.github.io/vega-lite/docs/mark.html#mark-def)."
12581        },
12582        "name": {
12583          "description": "Name of the visualization for later reference.",
12584          "type": "string"
12585        },
12586        "padding": {
12587          "$ref": "#/definitions/Padding",
12588          "description": "The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle.  If a number, specifies padding for all sides.\nIf an object, the value should have the format `{\"left\": 5, \"top\": 5, \"right\": 5, \"bottom\": 5}` to specify padding for each side of the visualization.\n\n__Default value__: `5`"
12589        },
12590        "projection": {
12591          "$ref": "#/definitions/Projection",
12592          "description": "An object defining properties of geographic projection, which will be applied to `shape` path for `\"geoshape\"` marks\nand to `latitude` and `\"longitude\"` channels for other marks."
12593        },
12594        "resolve": {
12595          "$ref": "#/definitions/Resolve",
12596          "description": "Scale, axis, and legend resolutions for view composition specifications."
12597        },
12598        "selection": {
12599          "additionalProperties": {
12600            "$ref": "#/definitions/SelectionDef"
12601          },
12602          "description": "A key-value mapping between selection names and definitions.",
12603          "type": "object"
12604        },
12605        "spacing": {
12606          "anyOf": [
12607            {
12608              "type": "number"
12609            },
12610            {
12611              "$ref": "#/definitions/RowCol<number>"
12612            }
12613          ],
12614          "description": "The spacing in pixels between sub-views of the composition operator.\nAn object of the form `{\"row\": number, \"column\": number}` can be used to set\ndifferent spacing values for rows and columns.\n\n__Default value__: Depends on `\"spacing\"` property of [the view composition configuration](https://vega.github.io/vega-lite/docs/config.html#view-config) (`20` by default)"
12615        },
12616        "title": {
12617          "anyOf": [
12618            {
12619              "type": "string"
12620            },
12621            {
12622              "$ref": "#/definitions/TitleParams"
12623            }
12624          ],
12625          "description": "Title for the plot."
12626        },
12627        "transform": {
12628          "description": "An array of data transformations such as filter and new field calculation.",
12629          "items": {
12630            "$ref": "#/definitions/Transform"
12631          },
12632          "type": "array"
12633        },
12634        "usermeta": {
12635          "description": "Optional metadata that will be passed to Vega.\nThis object is completely ignored by Vega and Vega-Lite and can be used for custom metadata.",
12636          "type": "object"
12637        },
12638        "view": {
12639          "$ref": "#/definitions/ViewBackground",
12640          "description": "An object defining the view background's fill and stroke.\n\n__Default value:__ none (transparent)"
12641        },
12642        "width": {
12643          "description": "The width of a visualization.\n\n__Default value:__ This will be determined by the following rules:\n\n- If a view's [`autosize`](https://vega.github.io/vega-lite/docs/size.html#autosize) type is `\"fit\"` or its x-channel has a [continuous scale](https://vega.github.io/vega-lite/docs/scale.html#continuous), the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- For x-axis with a band or point scale: if [`rangeStep`](https://vega.github.io/vega-lite/docs/scale.html#band) is a numeric value or unspecified, the width is [determined by the range step, paddings, and the cardinality of the field mapped to x-channel](https://vega.github.io/vega-lite/docs/scale.html#band).   Otherwise, if the `rangeStep` is `null`, the width will be the value of [`config.view.width`](https://vega.github.io/vega-lite/docs/spec.html#config).\n- If no field is mapped to `x` channel, the `width` will be the value of [`config.scale.textXRangeStep`](https://vega.github.io/vega-lite/docs/size.html#default-width-and-height) for `text` mark and the value of `rangeStep` for other marks.\n\n__Note:__ For plots with [`row` and `column` channels](https://vega.github.io/vega-lite/docs/encoding.html#facet), this represents the width of a single view.\n\n__See also:__ The documentation for [width and height](https://vega.github.io/vega-lite/docs/size.html) contains more examples.",
12644          "type": "number"
12645        }
12646      },
12647      "required": [
12648        "data",
12649        "mark"
12650      ],
12651      "type": "object"
12652    },
12653    "TopoDataFormat": {
12654      "additionalProperties": false,
12655      "properties": {
12656        "feature": {
12657          "description": "The name of the TopoJSON object set to convert to a GeoJSON feature collection.\nFor example, in a map of the world, there may be an object set named `\"countries\"`.\nUsing the feature property, we can extract this set and generate a GeoJSON feature object for each country.",
12658          "type": "string"
12659        },
12660        "mesh": {
12661          "description": "The name of the TopoJSON object set to convert to mesh.\nSimilar to the `feature` option, `mesh` extracts a named TopoJSON object set.\n  Unlike the `feature` option, the corresponding geo data is returned as a single, unified mesh instance, not as individual GeoJSON features.\nExtracting a mesh is useful for more efficiently drawing borders or other geographic elements that you do not need to associate with specific regions such as individual countries, states or counties.",
12662          "type": "string"
12663        },
12664        "parse": {
12665          "anyOf": [
12666            {
12667              "$ref": "#/definitions/Parse"
12668            },
12669            {
12670              "type": "null"
12671            }
12672          ],
12673          "description": "If set to `null`, disable type inference based on the spec and only use type inference based on the data.\nAlternatively, a parsing directive object can be provided for explicit data types. Each property of the object corresponds to a field name, and the value to the desired data type (one of `\"number\"`, `\"boolean\"`, `\"date\"`, or null (do not parse the field)).\nFor example, `\"parse\": {\"modified_on\": \"date\"}` parses the `modified_on` field in each input record a Date value.\n\nFor `\"date\"`, we parse data based using Javascript's [`Date.parse()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\nFor Specific date formats can be provided (e.g., `{foo: \"date:'%m%d%Y'\"}`), using the [d3-time-format syntax](https://github.com/d3/d3-time-format#locale_format). UTC date format parsing is supported similarly (e.g., `{foo: \"utc:'%m%d%Y'\"}`). See more about [UTC time](https://vega.github.io/vega-lite/docs/timeunit.html#utc)"
12674        },
12675        "type": {
12676          "description": "Type of input data: `\"json\"`, `\"csv\"`, `\"tsv\"`, `\"dsv\"`.\n\n__Default value:__  The default format type is determined by the extension of the file URL.\nIf no extension is detected, `\"json\"` will be used by default.",
12677          "enum": [
12678            "topojson"
12679          ],
12680          "type": "string"
12681        }
12682      },
12683      "type": "object"
12684    },
12685    "Transform": {
12686      "anyOf": [
12687        {
12688          "$ref": "#/definitions/AggregateTransform"
12689        },
12690        {
12691          "$ref": "#/definitions/BinTransform"
12692        },
12693        {
12694          "$ref": "#/definitions/CalculateTransform"
12695        },
12696        {
12697          "$ref": "#/definitions/FilterTransform"
12698        },
12699        {
12700          "$ref": "#/definitions/FlattenTransform"
12701        },
12702        {
12703          "$ref": "#/definitions/FoldTransform"
12704        },
12705        {
12706          "$ref": "#/definitions/ImputeTransform"
12707        },
12708        {
12709          "$ref": "#/definitions/JoinAggregateTransform"
12710        },
12711        {
12712          "$ref": "#/definitions/LookupTransform"
12713        },
12714        {
12715          "$ref": "#/definitions/TimeUnitTransform"
12716        },
12717        {
12718          "$ref": "#/definitions/SampleTransform"
12719        },
12720        {
12721          "$ref": "#/definitions/StackTransform"
12722        },
12723        {
12724          "$ref": "#/definitions/WindowTransform"
12725        }
12726      ]
12727    },
12728    "TypeForShape": {
12729      "enum": [
12730        "nominal",
12731        "ordinal",
12732        "geojson"
12733      ],
12734      "type": "string"
12735    },
12736    "TypedFieldDef": {
12737      "additionalProperties": false,
12738      "description": "Definition object for a data field, its type and transformation of an encoding channel.",
12739      "properties": {
12740        "aggregate": {
12741          "$ref": "#/definitions/Aggregate",
12742          "description": "Aggregation function for the field\n(e.g., `mean`, `sum`, `median`, `min`, `max`, `count`).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html) documentation."
12743        },
12744        "bin": {
12745          "anyOf": [
12746            {
12747              "type": "boolean"
12748            },
12749            {
12750              "$ref": "#/definitions/BinParams"
12751            },
12752            {
12753              "enum": [
12754                "binned"
12755              ],
12756              "type": "string"
12757            },
12758            {
12759              "type": "null"
12760            }
12761          ],
12762          "description": "A flag for binning a `quantitative` field, [an object defining binning parameters](https://vega.github.io/vega-lite/docs/bin.html#params), or indicating that the data for `x` or `y` channel are binned before they are imported into Vega-Lite (`\"binned\"`).\n\n- If `true`, default [binning parameters](https://vega.github.io/vega-lite/docs/bin.html) will be applied.\n\n- If `\"binned\"`, this indicates that the data for the `x` (or `y`) channel are already binned. You can map the bin-start field to `x` (or `y`) and the bin-end field to `x2` (or `y2`). The scale and axis will be formatted similar to binning in Vega-lite.  To adjust the axis ticks based on the bin step, you can also set the axis's [`tickMinStep`](https://vega.github.io/vega-lite/docs/axis.html#ticks) property.\n\n__Default value:__ `false`\n\n__See also:__ [`bin`](https://vega.github.io/vega-lite/docs/bin.html) documentation."
12763        },
12764        "field": {
12765          "$ref": "#/definitions/Field",
12766          "description": "__Required.__ A string defining the name of the field from which to pull a data value\nor an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__\n1)  Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`).\nIf field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`).\nSee more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html).\n2) `field` is not required if `aggregate` is `count`."
12767        },
12768        "timeUnit": {
12769          "$ref": "#/definitions/TimeUnit",
12770          "description": "Time unit (e.g., `year`, `yearmonth`, `month`, `hours`) for a temporal field.\nor [a temporal field that gets casted as ordinal](https://vega.github.io/vega-lite/docs/type.html#cast).\n\n__Default value:__ `undefined` (None)\n\n__See also:__ [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html) documentation."
12771        },
12772        "title": {
12773          "description": "A title for the field. If `null`, the title will be removed.\n\n__Default value:__  derived from the field's name and transformation function (`aggregate`, `bin` and `timeUnit`).  If the field has an aggregate function, the function is displayed as part of the title (e.g., `\"Sum of Profit\"`). If the field is binned or has a time unit applied, the applied function is shown in parentheses (e.g., `\"Profit (binned)\"`, `\"Transaction Date (year-month)\"`).  Otherwise, the title is simply the field name.\n\n__Notes__:\n\n1) You can customize the default field title format by providing the [`fieldTitle`](https://vega.github.io/vega-lite/docs/config.html#top-level-config) property in the [config](https://vega.github.io/vega-lite/docs/config.html) or [`fieldTitle` function via the `compile` function's options](https://vega.github.io/vega-lite/docs/compile.html#field-title).\n\n2) If both field definition's `title` and axis, header, or legend `title` are defined, axis/header/legend title will be used.",
12774          "type": [
12775            "string",
12776            "null"
12777          ]
12778        },
12779        "type": {
12780          "$ref": "#/definitions/StandardType",
12781          "description": "The encoded field's type of measurement (`\"quantitative\"`, `\"temporal\"`, `\"ordinal\"`, or `\"nominal\"`).\nIt can also be a `\"geojson\"` type for encoding ['geoshape'](https://vega.github.io/vega-lite/docs/geoshape.html).\n\n\n__Note:__\n\n- Data values for a temporal field can be either a date-time string (e.g., `\"2015-03-07 12:32:17\"`, `\"17:01\"`, `\"2015-03-16\"`. `\"2015\"`) or a timestamp number (e.g., `1552199579097`).\n- Data `type` describes the semantics of the data rather than the primitive data types (`number`, `string`, etc.). The same primitive data type can have different types of measurement. For example, numeric data can represent quantitative, ordinal, or nominal data.\n- When using with [`bin`](https://vega.github.io/vega-lite/docs/bin.html), the `type` property can be either `\"quantitative\"` (for using a linear bin scale) or [`\"ordinal\"` (for using an ordinal bin scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`timeUnit`](https://vega.github.io/vega-lite/docs/timeunit.html), the `type` property can be either `\"temporal\"` (for using a temporal scale) or [`\"ordinal\"` (for using an ordinal scale)](https://vega.github.io/vega-lite/docs/type.html#cast-bin).\n- When using with [`aggregate`](https://vega.github.io/vega-lite/docs/aggregate.html), the `type` property refers to the post-aggregation data type. For example, we can calculate count `distinct` of a categorical field `\"cat\"` using `{\"aggregate\": \"distinct\", \"field\": \"cat\", \"type\": \"quantitative\"}`. The `\"type\"` of the aggregate output is `\"quantitative\"`.\n- Secondary channels (e.g., `x2`, `y2`, `xError`, `yError`) do not have `type` as they have exactly the same type as their primary channels (e.g., `x`, `y`).\n\n__See also:__ [`type`](https://vega.github.io/vega-lite/docs/type.html) documentation."
12782        }
12783      },
12784      "required": [
12785        "type"
12786      ],
12787      "type": "object"
12788    },
12789    "UnitSpec": {
12790      "$ref": "#/definitions/GenericUnitSpec<Encoding,AnyMark>",
12791      "description": "A unit specification, which can contain either [primitive marks or composite marks](https://vega.github.io/vega-lite/docs/mark.html#types)."
12792    },
12793    "UrlData": {
12794      "additionalProperties": false,
12795      "properties": {
12796        "format": {
12797          "$ref": "#/definitions/DataFormat",
12798          "description": "An object that specifies the format for parsing the data."
12799        },
12800        "name": {
12801          "description": "Provide a placeholder name and bind data at runtime.",
12802          "type": "string"
12803        },
12804        "url": {
12805          "description": "An URL from which to load the data set. Use the `format.type` property\nto ensure the loaded data is correctly parsed.",
12806          "type": "string"
12807        }
12808      },
12809      "required": [
12810        "url"
12811      ],
12812      "type": "object"
12813    },
12814    "UtcMultiTimeUnit": {
12815      "enum": [
12816        "utcyearquarter",
12817        "utcyearquartermonth",
12818        "utcyearmonth",
12819        "utcyearmonthdate",
12820        "utcyearmonthdatehours",
12821        "utcyearmonthdatehoursminutes",
12822        "utcyearmonthdatehoursminutesseconds",
12823        "utcquartermonth",
12824        "utcmonthdate",
12825        "utcmonthdatehours",
12826        "utchoursminutes",
12827        "utchoursminutesseconds",
12828        "utcminutesseconds",
12829        "utcsecondsmilliseconds"
12830      ],
12831      "type": "string"
12832    },
12833    "UtcSingleTimeUnit": {
12834      "enum": [
12835        "utcyear",
12836        "utcquarter",
12837        "utcmonth",
12838        "utcday",
12839        "utcdate",
12840        "utchours",
12841        "utcminutes",
12842        "utcseconds",
12843        "utcmilliseconds"
12844      ],
12845      "type": "string"
12846    },
12847    "Value": {
12848      "type": [
12849        "number",
12850        "string",
12851        "boolean",
12852        "null"
12853      ]
12854    },
12855    "YValueDef": {
12856      "additionalProperties": false,
12857      "description": "Definition object for a constant value of an encoding channel.",
12858      "properties": {
12859        "value": {
12860          "anyOf": [
12861            {
12862              "type": "number"
12863            },
12864            {
12865              "enum": [
12866                "height"
12867              ],
12868              "type": "string"
12869            }
12870          ],
12871          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity)."
12872        }
12873      },
12874      "required": [
12875        "value"
12876      ],
12877      "type": "object"
12878    },
12879    "XValueDef": {
12880      "additionalProperties": false,
12881      "description": "Definition object for a constant value of an encoding channel.",
12882      "properties": {
12883        "value": {
12884          "anyOf": [
12885            {
12886              "type": "number"
12887            },
12888            {
12889              "enum": [
12890                "width"
12891              ],
12892              "type": "string"
12893            }
12894          ],
12895          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity)."
12896        }
12897      },
12898      "required": [
12899        "value"
12900      ],
12901      "type": "object"
12902    },
12903    "NumberValueDef": {
12904      "additionalProperties": false,
12905      "description": "Definition object for a constant value of an encoding channel.",
12906      "properties": {
12907        "value": {
12908          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
12909          "type": "number"
12910        }
12911      },
12912      "required": [
12913        "value"
12914      ],
12915      "type": "object"
12916    },
12917    "ValueDefWithCondition<MarkPropFieldDef,(string|null)>": {
12918      "additionalProperties": false,
12919      "description": "A ValueDef with Condition<ValueDef | FieldDef> where either the condition or the value are optional.\n{\n   condition: {field: ...} | {value: ...},\n   value: ...,\n}",
12920      "minProperties": 1,
12921      "properties": {
12922        "condition": {
12923          "anyOf": [
12924            {
12925              "$ref": "#/definitions/ConditionalMarkPropFieldDef"
12926            },
12927            {
12928              "$ref": "#/definitions/ConditionalStringValueDef"
12929            },
12930            {
12931              "items": {
12932                "$ref": "#/definitions/ConditionalStringValueDef"
12933              },
12934              "type": "array"
12935            }
12936          ],
12937          "description": "A field definition or one or more value definition(s) with a selection predicate."
12938        },
12939        "value": {
12940          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
12941          "type": [
12942            "string",
12943            "null"
12944          ]
12945        }
12946      },
12947      "type": "object"
12948    },
12949    "ValueDefWithCondition<MarkPropFieldDef,number>": {
12950      "additionalProperties": false,
12951      "description": "A ValueDef with Condition<ValueDef | FieldDef> where either the condition or the value are optional.\n{\n   condition: {field: ...} | {value: ...},\n   value: ...,\n}",
12952      "minProperties": 1,
12953      "properties": {
12954        "condition": {
12955          "anyOf": [
12956            {
12957              "$ref": "#/definitions/ConditionalMarkPropFieldDef"
12958            },
12959            {
12960              "$ref": "#/definitions/ConditionalNumberValueDef"
12961            },
12962            {
12963              "items": {
12964                "$ref": "#/definitions/ConditionalNumberValueDef"
12965              },
12966              "type": "array"
12967            }
12968          ],
12969          "description": "A field definition or one or more value definition(s) with a selection predicate."
12970        },
12971        "value": {
12972          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
12973          "type": "number"
12974        }
12975      },
12976      "type": "object"
12977    },
12978    "ValueDefWithCondition<MarkPropFieldDef<TypeForShape>,(string|null)>": {
12979      "additionalProperties": false,
12980      "description": "A ValueDef with Condition<ValueDef | FieldDef> where either the condition or the value are optional.\n{\n   condition: {field: ...} | {value: ...},\n   value: ...,\n}",
12981      "minProperties": 1,
12982      "properties": {
12983        "condition": {
12984          "anyOf": [
12985            {
12986              "$ref": "#/definitions/ConditionalMarkPropFieldDef<TypeForShape>"
12987            },
12988            {
12989              "$ref": "#/definitions/ConditionalStringValueDef"
12990            },
12991            {
12992              "items": {
12993                "$ref": "#/definitions/ConditionalStringValueDef"
12994              },
12995              "type": "array"
12996            }
12997          ],
12998          "description": "A field definition or one or more value definition(s) with a selection predicate."
12999        },
13000        "value": {
13001          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity).",
13002          "type": [
13003            "string",
13004            "null"
13005          ]
13006        }
13007      },
13008      "type": "object"
13009    },
13010    "ValueDefWithCondition<TextFieldDef,Value>": {
13011      "additionalProperties": false,
13012      "description": "A ValueDef with Condition<ValueDef | FieldDef> where either the condition or the value are optional.\n{\n   condition: {field: ...} | {value: ...},\n   value: ...,\n}",
13013      "minProperties": 1,
13014      "properties": {
13015        "condition": {
13016          "anyOf": [
13017            {
13018              "$ref": "#/definitions/ConditionalTextFieldDef"
13019            },
13020            {
13021              "$ref": "#/definitions/ConditionalValueDef"
13022            },
13023            {
13024              "items": {
13025                "$ref": "#/definitions/ConditionalValueDef"
13026              },
13027              "type": "array"
13028            }
13029          ],
13030          "description": "A field definition or one or more value definition(s) with a selection predicate."
13031        },
13032        "value": {
13033          "$ref": "#/definitions/Value",
13034          "description": "A constant value in visual domain (e.g., `\"red\"` / \"#0099ff\" for color, values between `0` to `1` for opacity)."
13035        }
13036      },
13037      "type": "object"
13038    },
13039    "ViewBackground": {
13040      "additionalProperties": false,
13041      "properties": {
13042        "cornerRadius": {
13043          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
13044          "type": "number"
13045        },
13046        "fill": {
13047          "anyOf": [
13048            {
13049              "$ref": "#/definitions/Color"
13050            },
13051            {
13052              "type": "null"
13053            }
13054          ],
13055          "description": "The fill color.\n\n__Default value:__ `undefined`"
13056        },
13057        "fillOpacity": {
13058          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
13059          "maximum": 1,
13060          "minimum": 0,
13061          "type": "number"
13062        },
13063        "opacity": {
13064          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
13065          "maximum": 1,
13066          "minimum": 0,
13067          "type": "number"
13068        },
13069        "stroke": {
13070          "anyOf": [
13071            {
13072              "$ref": "#/definitions/Color"
13073            },
13074            {
13075              "type": "null"
13076            }
13077          ],
13078          "description": "The stroke color.\n\n__Default value:__ `\"#ddd\"`"
13079        },
13080        "strokeCap": {
13081          "$ref": "#/definitions/StrokeCap",
13082          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
13083        },
13084        "strokeDash": {
13085          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
13086          "items": {
13087            "type": "number"
13088          },
13089          "type": "array"
13090        },
13091        "strokeDashOffset": {
13092          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
13093          "type": "number"
13094        },
13095        "strokeJoin": {
13096          "$ref": "#/definitions/StrokeJoin",
13097          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
13098        },
13099        "strokeMiterLimit": {
13100          "description": "The miter limit at which to bevel a line join.",
13101          "type": "number"
13102        },
13103        "strokeOpacity": {
13104          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
13105          "maximum": 1,
13106          "minimum": 0,
13107          "type": "number"
13108        },
13109        "strokeWidth": {
13110          "description": "The stroke width, in pixels.",
13111          "minimum": 0,
13112          "type": "number"
13113        },
13114        "style": {
13115          "anyOf": [
13116            {
13117              "type": "string"
13118            },
13119            {
13120              "items": {
13121                "type": "string"
13122              },
13123              "type": "array"
13124            }
13125          ],
13126          "description": "A string or array of strings indicating the name of custom styles to apply to the view background. A style is a named collection of mark property defaults defined within the [style configuration](https://vega.github.io/vega-lite/docs/mark.html#style-config). If style is an array, later styles will override earlier styles.\n\n__Default value:__ `\"cell\"`\n__Note:__ Any specified view background properties will augment the default style."
13127        }
13128      },
13129      "type": "object"
13130    },
13131    "ViewConfig": {
13132      "additionalProperties": false,
13133      "properties": {
13134        "clip": {
13135          "description": "Whether the view should be clipped.",
13136          "type": "boolean"
13137        },
13138        "cornerRadius": {
13139          "description": "The radius in pixels of rounded rectangle corners.\n\n__Default value:__ `0`",
13140          "type": "number"
13141        },
13142        "fill": {
13143          "anyOf": [
13144            {
13145              "$ref": "#/definitions/Color"
13146            },
13147            {
13148              "type": "null"
13149            }
13150          ],
13151          "description": "The fill color.\n\n__Default value:__ `undefined`"
13152        },
13153        "fillOpacity": {
13154          "description": "The fill opacity (value between [0,1]).\n\n__Default value:__ `1`",
13155          "maximum": 1,
13156          "minimum": 0,
13157          "type": "number"
13158        },
13159        "height": {
13160          "description": "The default height of the single plot or each plot in a trellis plot when the visualization has a continuous (non-ordinal) y-scale with `rangeStep` = `null`.\n\n__Default value:__ `200`",
13161          "type": "number"
13162        },
13163        "opacity": {
13164          "description": "The overall opacity (value between [0,1]).\n\n__Default value:__ `0.7` for non-aggregate plots with `point`, `tick`, `circle`, or `square` marks or layered `bar` charts and `1` otherwise.",
13165          "maximum": 1,
13166          "minimum": 0,
13167          "type": "number"
13168        },
13169        "stroke": {
13170          "anyOf": [
13171            {
13172              "$ref": "#/definitions/Color"
13173            },
13174            {
13175              "type": "null"
13176            }
13177          ],
13178          "description": "The stroke color.\n\n__Default value:__ `\"#ddd\"`"
13179        },
13180        "strokeCap": {
13181          "$ref": "#/definitions/StrokeCap",
13182          "description": "The stroke cap for line ending style. One of `\"butt\"`, `\"round\"`, or `\"square\"`.\n\n__Default value:__ `\"square\"`"
13183        },
13184        "strokeDash": {
13185          "description": "An array of alternating stroke, space lengths for creating dashed or dotted lines.",
13186          "items": {
13187            "type": "number"
13188          },
13189          "type": "array"
13190        },
13191        "strokeDashOffset": {
13192          "description": "The offset (in pixels) into which to begin drawing with the stroke dash array.",
13193          "type": "number"
13194        },
13195        "strokeJoin": {
13196          "$ref": "#/definitions/StrokeJoin",
13197          "description": "The stroke line join method. One of `\"miter\"`, `\"round\"` or `\"bevel\"`.\n\n__Default value:__ `\"miter\"`"
13198        },
13199        "strokeMiterLimit": {
13200          "description": "The miter limit at which to bevel a line join.",
13201          "type": "number"
13202        },
13203        "strokeOpacity": {
13204          "description": "The stroke opacity (value between [0,1]).\n\n__Default value:__ `1`",
13205          "maximum": 1,
13206          "minimum": 0,
13207          "type": "number"
13208        },
13209        "strokeWidth": {
13210          "description": "The stroke width, in pixels.",
13211          "minimum": 0,
13212          "type": "number"
13213        },
13214        "width": {
13215          "description": "The default width of the single plot or each plot in a trellis plot when the visualization has a continuous (non-ordinal) x-scale or ordinal x-scale with `rangeStep` = `null`.\n\n__Default value:__ `200`",
13216          "type": "number"
13217        }
13218      },
13219      "type": "object"
13220    },
13221    "WindowFieldDef": {
13222      "additionalProperties": false,
13223      "properties": {
13224        "as": {
13225          "$ref": "#/definitions/FieldName",
13226          "description": "The output name for the window operation."
13227        },
13228        "field": {
13229          "$ref": "#/definitions/FieldName",
13230          "description": "The data field for which to compute the aggregate or window function. This can be omitted for window functions that do not operate over a field such as `count`, `rank`, `dense_rank`."
13231        },
13232        "op": {
13233          "anyOf": [
13234            {
13235              "$ref": "#/definitions/AggregateOp"
13236            },
13237            {
13238              "$ref": "#/definitions/WindowOnlyOp"
13239            }
13240          ],
13241          "description": "The window or aggregation operation to apply within a window (e.g.,`rank`, `lead`, `sum`, `average` or `count`). See the list of all supported operations [here](https://vega.github.io/vega-lite/docs/window.html#ops)."
13242        },
13243        "param": {
13244          "description": "Parameter values for the window functions. Parameter values can be omitted for operations that do not accept a parameter.\n\nSee the list of all supported operations and their parameters [here](https://vega.github.io/vega-lite/docs/transforms/window.html).",
13245          "type": "number"
13246        }
13247      },
13248      "required": [
13249        "op",
13250        "as"
13251      ],
13252      "type": "object"
13253    },
13254    "WindowOnlyOp": {
13255      "enum": [
13256        "row_number",
13257        "rank",
13258        "dense_rank",
13259        "percent_rank",
13260        "cume_dist",
13261        "ntile",
13262        "lag",
13263        "lead",
13264        "first_value",
13265        "last_value",
13266        "nth_value"
13267      ],
13268      "type": "string"
13269    },
13270    "WindowTransform": {
13271      "additionalProperties": false,
13272      "properties": {
13273        "frame": {
13274          "description": "A frame specification as a two-element array indicating how the sliding window should proceed. The array entries should either be a number indicating the offset from the current data object, or null to indicate unbounded rows preceding or following the current data object. The default value is `[null, 0]`, indicating that the sliding window includes the current object and all preceding objects. The value `[-5, 5]` indicates that the window should include five objects preceding and five objects following the current object. Finally, `[null, null]` indicates that the window frame should always include all data objects. If you this frame and want to assign the same value to add objects, you can use the simpler [join aggregate transform](https://vega.github.io/vega-lite/docs/joinaggregate.html). The only operators affected are the aggregation operations and the `first_value`, `last_value`, and `nth_value` window operations. The other window operations are not affected by this.\n\n__Default value:__:  `[null, 0]` (includes the current object and all preceding objects)",
13275          "items": {
13276            "type": [
13277              "null",
13278              "number"
13279            ]
13280          },
13281          "type": "array"
13282        },
13283        "groupby": {
13284          "description": "The data fields for partitioning the data objects into separate windows. If unspecified, all data points will be in a single window.",
13285          "items": {
13286            "$ref": "#/definitions/FieldName"
13287          },
13288          "type": "array"
13289        },
13290        "ignorePeers": {
13291          "description": "Indicates if the sliding window frame should ignore peer values (data that are considered identical by the sort criteria). The default is false, causing the window frame to expand to include all peer values. If set to true, the window frame will be defined by offset values only. This setting only affects those operations that depend on the window frame, namely aggregation operations and the first_value, last_value, and nth_value window operations.\n\n__Default value:__ `false`",
13292          "type": "boolean"
13293        },
13294        "sort": {
13295          "description": "A sort field definition for sorting data objects within a window. If two data objects are considered equal by the comparator, they are considered “peer” values of equal rank. If sort is not specified, the order is undefined: data objects are processed in the order they are observed and none are considered peers (the ignorePeers parameter is ignored and treated as if set to `true`).",
13296          "items": {
13297            "$ref": "#/definitions/SortField"
13298          },
13299          "type": "array"
13300        },
13301        "window": {
13302          "description": "The definition of the fields in the window, and what calculations to use.",
13303          "items": {
13304            "$ref": "#/definitions/WindowFieldDef"
13305          },
13306          "type": "array"
13307        }
13308      },
13309      "required": [
13310        "window"
13311      ],
13312      "type": "object"
13313    }
13314  }
13315}