Difference between revisions of "Getting Started"

From maker-hub
Jump to navigation Jump to search
Line 332: Line 332:
 
           "align": {"signal": "datum.children ? 'right' : 'left'"},
 
           "align": {"signal": "datum.children ? 'right' : 'left'"},
 
           "opacity": {"signal": "labels ? 1 : 0"}
 
           "opacity": {"signal": "labels ? 1 : 0"}
 +
        }
 +
      }
 +
    }
 +
  ]
 +
}
 +
{
 +
  "$schema": "http://json-schema.org/draft-06/schema#",
 +
  "title": "Vega Visualization Specification Language",
 +
  "defs": {
 +
    "autosize": {
 +
      "oneOf": [
 +
        {
 +
          "enum": [
 +
            "pad",
 +
            "fit",
 +
            "fit-x",
 +
            "fit-y",
 +
            "none"
 +
          ],
 +
          "default": "pad"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "pad",
 +
                "fit",
 +
                "fit-x",
 +
                "fit-y",
 +
                "none"
 +
              ],
 +
              "default": "pad"
 +
            },
 +
            "resize": {
 +
              "type": "boolean"
 +
            },
 +
            "contains": {
 +
              "enum": [
 +
                "content",
 +
                "padding"
 +
              ]
 +
            }
 +
          },
 +
          "required": [
 +
            "type"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "axis": {
 +
      "type": "object",
 +
      "properties": {
 +
        "orient": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                "top",
 +
                "bottom",
 +
                "left",
 +
                "right"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "scale": {
 +
          "type": "string"
 +
        },
 +
        "format": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "year": {
 +
                  "type": "string"
 +
                },
 +
                "quarter": {
 +
                  "type": "string"
 +
                },
 +
                "month": {
 +
                  "type": "string"
 +
                },
 +
                "date": {
 +
                  "type": "string"
 +
                },
 +
                "week": {
 +
                  "type": "string"
 +
                },
 +
                "day": {
 +
                  "type": "string"
 +
                },
 +
                "hours": {
 +
                  "type": "string"
 +
                },
 +
                "minutes": {
 +
                  "type": "string"
 +
                },
 +
                "seconds": {
 +
                  "type": "string"
 +
                },
 +
                "milliseconds": {
 +
                  "type": "string"
 +
                }
 +
              },
 +
              "additionalProperties": false
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "formatType": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                "number",
 +
                "time",
 +
                "utc"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "minExtent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "maxExtent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "offset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "position": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "bandPosition": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "translate": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "values": {
 +
          "$ref": "#/refs/arrayOrSignal"
 +
        },
 +
        "zindex": {
 +
          "type": "number"
 +
        },
 +
        "aria": {
 +
          "type": "boolean"
 +
        },
 +
        "description": {
 +
          "type": "string"
 +
        },
 +
        "title": {
 +
          "$ref": "#/refs/textOrSignal"
 +
        },
 +
        "titlePadding": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleAlign": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                "left",
 +
                "right",
 +
                "center"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/alignValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleAnchor": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                null,
 +
                "start",
 +
                "middle",
 +
                "end"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/anchorValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleAngle": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleX": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleY": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleBaseline": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                "top",
 +
                "middle",
 +
                "bottom",
 +
                "alphabetic",
 +
                "line-top",
 +
                "line-bottom"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/baselineValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleColor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "null"
 +
            },
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/colorValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleFont": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleFontSize": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleFontStyle": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleFontWeight": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                null,
 +
                "normal",
 +
                "bold",
 +
                "lighter",
 +
                "bolder",
 +
                "100",
 +
                "200",
 +
                "300",
 +
                "400",
 +
                "500",
 +
                "600",
 +
                "700",
 +
                "800",
 +
                "900",
 +
                100,
 +
                200,
 +
                300,
 +
                400,
 +
                500,
 +
                600,
 +
                700,
 +
                800,
 +
                900
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/fontWeightValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleLimit": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleLineHeight": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "titleOpacity": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "domain": {
 +
          "type": "boolean"
 +
        },
 +
        "domainCap": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "domainColor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "null"
 +
            },
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/colorValue"
 +
            }
 +
          ]
 +
        },
 +
        "domainDash": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "number"
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/arrayValue"
 +
            }
 +
          ]
 +
        },
 +
        "domainDashOffset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "domainOpacity": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "domainWidth": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "ticks": {
 +
          "type": "boolean"
 +
        },
 +
        "tickBand": {
 +
          "$ref": "#/refs/tickBand"
 +
        },
 +
        "tickCap": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickColor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "null"
 +
            },
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/colorValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickDash": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "number"
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/arrayValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickDashOffset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickOffset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickOpacity": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickRound": {
 +
          "oneOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/booleanValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickSize": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickWidth": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "tickCount": {
 +
          "$ref": "#/refs/tickCount"
 +
        },
 +
        "tickExtra": {
 +
          "$ref": "#/refs/booleanOrSignal"
 +
        },
 +
        "tickMinStep": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "grid": {
 +
          "type": "boolean"
 +
        },
 +
        "gridScale": {
 +
          "type": "string"
 +
        },
 +
        "gridCap": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "gridColor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "null"
 +
            },
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/colorValue"
 +
            }
 +
          ]
 +
        },
 +
        "gridDash": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "number"
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/arrayValue"
 +
            }
 +
          ]
 +
        },
 +
        "gridDashOffset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "gridOpacity": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "gridWidth": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labels": {
 +
          "type": "boolean"
 +
        },
 +
        "labelAlign": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                "left",
 +
                "right",
 +
                "center"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/alignValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelBaseline": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                "top",
 +
                "middle",
 +
                "bottom",
 +
                "alphabetic",
 +
                "line-top",
 +
                "line-bottom"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/baselineValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelBound": {
 +
          "oneOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "labelFlush": {
 +
          "oneOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "labelFlushOffset": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "labelOverlap": {
 +
          "$ref": "#/refs/labelOverlap"
 +
        },
 +
        "labelAngle": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelColor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "null"
 +
            },
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/colorValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelFont": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelFontSize": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelFontWeight": {
 +
          "oneOf": [
 +
            {
 +
              "enum": [
 +
                null,
 +
                "normal",
 +
                "bold",
 +
                "lighter",
 +
                "bolder",
 +
                "100",
 +
                "200",
 +
                "300",
 +
                "400",
 +
                "500",
 +
                "600",
 +
                "700",
 +
                "800",
 +
                "900",
 +
                100,
 +
                200,
 +
                300,
 +
                400,
 +
                500,
 +
                600,
 +
                700,
 +
                800,
 +
                900
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/fontWeightValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelFontStyle": {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/stringValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelLimit": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelLineHeight": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelOpacity": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelOffset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelPadding": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "labelSeparation": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "encode": {
 +
          "type": "object",
 +
          "properties": {
 +
            "axis": {
 +
              "$ref": "#/defs/guideEncode"
 +
            },
 +
            "ticks": {
 +
              "$ref": "#/defs/guideEncode"
 +
            },
 +
            "labels": {
 +
              "$ref": "#/defs/guideEncode"
 +
            },
 +
            "title": {
 +
              "$ref": "#/defs/guideEncode"
 +
            },
 +
            "grid": {
 +
              "$ref": "#/defs/guideEncode"
 +
            },
 +
            "domain": {
 +
              "$ref": "#/defs/guideEncode"
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        }
 +
      },
 +
      "required": [
 +
        "orient",
 +
        "scale"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "background": {
 +
      "$ref": "#/refs/stringOrSignal"
 +
    },
 +
    "bind": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "input": {
 +
              "enum": [
 +
                "checkbox"
 +
              ]
 +
            },
 +
            "element": {
 +
              "$ref": "#/refs/element"
 +
            },
 +
            "debounce": {
 +
              "type": "number"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            }
 +
          },
 +
          "required": [
 +
            "input"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "input": {
 +
              "enum": [
 +
                "radio",
 +
                "select"
 +
              ]
 +
            },
 +
            "element": {
 +
              "$ref": "#/refs/element"
 +
            },
 +
            "options": {
 +
              "type": "array"
 +
            },
 +
            "labels": {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "string"
 +
              }
 +
            },
 +
            "debounce": {
 +
              "type": "number"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            }
 +
          },
 +
          "required": [
 +
            "input",
 +
            "options"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "input": {
 +
              "enum": [
 +
                "range"
 +
              ]
 +
            },
 +
            "element": {
 +
              "$ref": "#/refs/element"
 +
            },
 +
            "min": {
 +
              "type": "number"
 +
            },
 +
            "max": {
 +
              "type": "number"
 +
            },
 +
            "step": {
 +
              "type": "number"
 +
            },
 +
            "debounce": {
 +
              "type": "number"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            }
 +
          },
 +
          "required": [
 +
            "input"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "input": {
 +
              "not": {
 +
                "enum": [
 +
                  "checkbox",
 +
                  "radio",
 +
                  "range",
 +
                  "select"
 +
                ]
 +
              }
 +
            },
 +
            "element": {
 +
              "$ref": "#/refs/element"
 +
            },
 +
            "debounce": {
 +
              "type": "number"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            }
 +
          },
 +
          "required": [
 +
            "input"
 +
          ],
 +
          "additionalProperties": true
 +
        }
 +
      ]
 +
    },
 +
    "data": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "transform": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/defs/transform"
 +
              }
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onTrigger"
 +
            }
 +
          },
 +
          "required": [
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "source": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "type": "string"
 +
                  },
 +
                  "minItems": 1
 +
                }
 +
              ]
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "transform": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/defs/transform"
 +
              }
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onTrigger"
 +
            }
 +
          },
 +
          "required": [
 +
            "source",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "url": {
 +
              "$ref": "#/refs/stringOrSignal"
 +
            },
 +
            "format": {
 +
              "oneOf": [
 +
                {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "$ref": "#/refs/stringOrSignal"
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        }
 +
                      }
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "enum": [
 +
                            "json"
 +
                          ]
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        },
 +
                        "property": {
 +
                          "$ref": "#/refs/stringOrSignal"
 +
                        },
 +
                        "copy": {
 +
                          "$ref": "#/refs/booleanOrSignal"
 +
                        }
 +
                      },
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "enum": [
 +
                            "csv",
 +
                            "tsv"
 +
                          ]
 +
                        },
 +
                        "header": {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "type": "string"
 +
                          }
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "type"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "enum": [
 +
                            "dsv"
 +
                          ]
 +
                        },
 +
                        "delimiter": {
 +
                          "type": "string"
 +
                        },
 +
                        "header": {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "type": "string"
 +
                          }
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "type",
 +
                        "delimiter"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "object",
 +
                          "properties": {
 +
                            "type": {
 +
                              "enum": [
 +
                                "topojson"
 +
                              ]
 +
                            },
 +
                            "feature": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            },
 +
                            "property": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            }
 +
                          },
 +
                          "required": [
 +
                            "type",
 +
                            "feature"
 +
                          ],
 +
                          "additionalProperties": false
 +
                        },
 +
                        {
 +
                          "type": "object",
 +
                          "properties": {
 +
                            "type": {
 +
                              "enum": [
 +
                                "topojson"
 +
                              ]
 +
                            },
 +
                            "mesh": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            },
 +
                            "property": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            },
 +
                            "filter": {
 +
                              "enum": [
 +
                                "interior",
 +
                                "exterior",
 +
                                null
 +
                              ]
 +
                            }
 +
                          },
 +
                          "required": [
 +
                            "type",
 +
                            "mesh"
 +
                          ],
 +
                          "additionalProperties": false
 +
                        }
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "async": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "transform": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/defs/transform"
 +
              }
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onTrigger"
 +
            }
 +
          },
 +
          "required": [
 +
            "url",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "values": {
 +
              "oneOf": [
 +
                {},
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "format": {
 +
              "oneOf": [
 +
                {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "$ref": "#/refs/stringOrSignal"
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        }
 +
                      }
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "enum": [
 +
                            "json"
 +
                          ]
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        },
 +
                        "property": {
 +
                          "$ref": "#/refs/stringOrSignal"
 +
                        },
 +
                        "copy": {
 +
                          "$ref": "#/refs/booleanOrSignal"
 +
                        }
 +
                      },
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "enum": [
 +
                            "csv",
 +
                            "tsv"
 +
                          ]
 +
                        },
 +
                        "header": {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "type": "string"
 +
                          }
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "type"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "type": {
 +
                          "enum": [
 +
                            "dsv"
 +
                          ]
 +
                        },
 +
                        "delimiter": {
 +
                          "type": "string"
 +
                        },
 +
                        "header": {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "type": "string"
 +
                          }
 +
                        },
 +
                        "parse": {
 +
                          "oneOf": [
 +
                            {
 +
                              "enum": [
 +
                                "auto"
 +
                              ]
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {},
 +
                              "additionalProperties": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "enum": [
 +
                                      "boolean",
 +
                                      "number",
 +
                                      "date",
 +
                                      "string"
 +
                                    ]
 +
                                  },
 +
                                  {
 +
                                    "type": "string",
 +
                                    "pattern": "^(date|utc):.*$"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            {
 +
                              "$ref": "#/refs/signal"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "type",
 +
                        "delimiter"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "object",
 +
                          "properties": {
 +
                            "type": {
 +
                              "enum": [
 +
                                "topojson"
 +
                              ]
 +
                            },
 +
                            "feature": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            },
 +
                            "property": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            }
 +
                          },
 +
                          "required": [
 +
                            "type",
 +
                            "feature"
 +
                          ],
 +
                          "additionalProperties": false
 +
                        },
 +
                        {
 +
                          "type": "object",
 +
                          "properties": {
 +
                            "type": {
 +
                              "enum": [
 +
                                "topojson"
 +
                              ]
 +
                            },
 +
                            "mesh": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            },
 +
                            "property": {
 +
                              "$ref": "#/refs/stringOrSignal"
 +
                            },
 +
                            "filter": {
 +
                              "enum": [
 +
                                "interior",
 +
                                "exterior",
 +
                                null
 +
                              ]
 +
                            }
 +
                          },
 +
                          "required": [
 +
                            "type",
 +
                            "mesh"
 +
                          ],
 +
                          "additionalProperties": false
 +
                        }
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "async": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "transform": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/defs/transform"
 +
              }
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onTrigger"
 +
            }
 +
          },
 +
          "required": [
 +
            "values",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "rule": {
 +
      "type": "object",
 +
      "properties": {
 +
        "test": {
 +
          "type": "string"
 +
        }
 +
      }
 +
    },
 +
    "encodeEntry": {
 +
      "type": "object",
 +
      "properties": {
 +
        "x": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "x2": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "xc": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "width": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "y": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "y2": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "yc": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "height": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "opacity": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "fill": {
 +
          "$ref": "#/refs/colorValue"
 +
        },
 +
        "fillOpacity": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "stroke": {
 +
          "$ref": "#/refs/colorValue"
 +
        },
 +
        "strokeOpacity": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "strokeWidth": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "strokeCap": {
 +
          "$ref": "#/refs/strokeCapValue"
 +
        },
 +
        "strokeDash": {
 +
          "$ref": "#/refs/arrayValue"
 +
        },
 +
        "strokeDashOffset": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "strokeJoin": {
 +
          "$ref": "#/refs/strokeJoinValue"
 +
        },
 +
        "strokeMiterLimit": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "blend": {
 +
          "$ref": "#/refs/blendValue"
 +
        },
 +
        "cursor": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "tooltip": {
 +
          "$ref": "#/refs/anyValue"
 +
        },
 +
        "zindex": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "description": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "aria": {
 +
          "$ref": "#/refs/booleanValue"
 +
        },
 +
        "ariaRole": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "ariaRoleDescription": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "clip": {
 +
          "$ref": "#/refs/booleanValue"
 +
        },
 +
        "strokeForeground": {
 +
          "$ref": "#/refs/booleanValue"
 +
        },
 +
        "strokeOffset": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "cornerRadius": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "cornerRadiusTopLeft": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "cornerRadiusTopRight": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "cornerRadiusBottomRight": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "cornerRadiusBottomLeft": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "angle": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "size": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "shape": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "path": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "scaleX": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "scaleY": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "innerRadius": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "outerRadius": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "startAngle": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "endAngle": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "padAngle": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "interpolate": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "tension": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "orient": {
 +
          "$ref": "#/refs/directionValue"
 +
        },
 +
        "defined": {
 +
          "$ref": "#/refs/booleanValue"
 +
        },
 +
        "url": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "align": {
 +
          "$ref": "#/refs/alignValue"
 +
        },
 +
        "baseline": {
 +
          "$ref": "#/refs/baselineValue"
 +
        },
 +
        "aspect": {
 +
          "$ref": "#/refs/booleanValue"
 +
        },
 +
        "smooth": {
 +
          "$ref": "#/refs/booleanValue"
 +
        },
 +
        "text": {
 +
          "$ref": "#/refs/textValue"
 +
        },
 +
        "dir": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "ellipsis": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "limit": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "lineBreak": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "lineHeight": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "dx": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "dy": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "radius": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "theta": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "font": {
 +
          "$ref": "#/refs/stringValue"
 +
        },
 +
        "fontSize": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "fontWeight": {
 +
          "$ref": "#/refs/fontWeightValue"
 +
        },
 +
        "fontStyle": {
 +
          "$ref": "#/refs/stringValue"
 +
        }
 +
      },
 +
      "additionalProperties": true
 +
    },
 +
    "encode": {
 +
      "type": "object",
 +
      "additionalProperties": false,
 +
      "patternProperties": {
 +
        "^.+$": {
 +
          "$ref": "#/defs/encodeEntry"
 +
        }
 +
      }
 +
    },
 +
    "layout": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "align": {
 +
              "oneOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "enum": [
 +
                        "all",
 +
                        "each",
 +
                        "none"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "oneOf": [
 +
                        {
 +
                          "enum": [
 +
                            "all",
 +
                            "each",
 +
                            "none"
 +
                          ]
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "column": {
 +
                      "oneOf": [
 +
                        {
 +
                          "enum": [
 +
                            "all",
 +
                            "each",
 +
                            "none"
 +
                          ]
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "bounds": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "full",
 +
                    "flush"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "center": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "$ref": "#/refs/booleanOrSignal"
 +
                    },
 +
                    "column": {
 +
                      "$ref": "#/refs/booleanOrSignal"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "columns": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "padding": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "column": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "offset": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "rowHeader": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "rowFooter": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "rowTitle": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "columnHeader": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "columnFooter": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "columnTitle": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "headerBand": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/numberOrSignal"
 +
                },
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "column": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "footerBand": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/numberOrSignal"
 +
                },
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "column": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "titleBand": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/numberOrSignal"
 +
                },
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "column": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "titleAnchor": {
 +
              "oneOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "enum": [
 +
                        "start",
 +
                        "end"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "row": {
 +
                      "oneOf": [
 +
                        {
 +
                          "enum": [
 +
                            "start",
 +
                            "end"
 +
                          ]
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "column": {
 +
                      "oneOf": [
 +
                        {
 +
                          "enum": [
 +
                            "start",
 +
                            "end"
 +
                          ]
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "guideEncode": {
 +
      "type": "object",
 +
      "properties": {
 +
        "name": {
 +
          "type": "string"
 +
        },
 +
        "interactive": {
 +
          "type": "boolean",
 +
          "default": false
 +
        },
 +
        "style": {
 +
          "$ref": "#/refs/style"
 +
        }
 +
      },
 +
      "additionalProperties": false,
 +
      "patternProperties": {
 +
        "^(?!interactive|name|style).+$": {
 +
          "$ref": "#/defs/encodeEntry"
 +
        }
 +
      }
 +
    },
 +
    "legend": {
 +
      "allOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "size": {
 +
              "type": "string"
 +
            },
 +
            "shape": {
 +
              "type": "string"
 +
            },
 +
            "fill": {
 +
              "type": "string"
 +
            },
 +
            "stroke": {
 +
              "type": "string"
 +
            },
 +
            "opacity": {
 +
              "type": "string"
 +
            },
 +
            "strokeDash": {
 +
              "type": "string"
 +
            },
 +
            "strokeWidth": {
 +
              "type": "string"
 +
            },
 +
            "type": {
 +
              "enum": [
 +
                "gradient",
 +
                "symbol"
 +
              ]
 +
            },
 +
            "direction": {
 +
              "enum": [
 +
                "vertical",
 +
                "horizontal"
 +
              ]
 +
            },
 +
            "orient": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "none",
 +
                    "left",
 +
                    "right",
 +
                    "top",
 +
                    "bottom",
 +
                    "top-left",
 +
                    "top-right",
 +
                    "bottom-left",
 +
                    "bottom-right"
 +
                  ],
 +
                  "default": "right"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "tickCount": {
 +
              "$ref": "#/refs/tickCount"
 +
            },
 +
            "tickMinStep": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "symbolLimit": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "values": {
 +
              "$ref": "#/refs/arrayOrSignal"
 +
            },
 +
            "zindex": {
 +
              "type": "number"
 +
            },
 +
            "aria": {
 +
              "type": "boolean"
 +
            },
 +
            "description": {
 +
              "type": "string"
 +
            },
 +
            "cornerRadius": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "fillColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "offset": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "padding": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "strokeColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "legendX": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "legendY": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "title": {
 +
              "$ref": "#/refs/textOrSignal"
 +
            },
 +
            "titleAlign": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "left",
 +
                    "right",
 +
                    "center"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/alignValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleAnchor": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    null,
 +
                    "start",
 +
                    "middle",
 +
                    "end"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/anchorValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleBaseline": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "top",
 +
                    "middle",
 +
                    "bottom",
 +
                    "alphabetic",
 +
                    "line-top",
 +
                    "line-bottom"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/baselineValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleFont": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleFontSize": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleFontStyle": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleFontWeight": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    null,
 +
                    "normal",
 +
                    "bold",
 +
                    "lighter",
 +
                    "bolder",
 +
                    "100",
 +
                    "200",
 +
                    "300",
 +
                    "400",
 +
                    "500",
 +
                    "600",
 +
                    "700",
 +
                    "800",
 +
                    "900",
 +
                    100,
 +
                    200,
 +
                    300,
 +
                    400,
 +
                    500,
 +
                    600,
 +
                    700,
 +
                    800,
 +
                    900
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/fontWeightValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleLimit": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleLineHeight": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleOpacity": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "titleOrient": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "left",
 +
                    "right",
 +
                    "top",
 +
                    "bottom"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/orientValue"
 +
                }
 +
              ]
 +
            },
 +
            "titlePadding": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "gradientLength": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "gradientOpacity": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "gradientStrokeColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "gradientStrokeWidth": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "gradientThickness": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "clipHeight": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "columns": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "columnPadding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "rowPadding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "gridAlign": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "all",
 +
                    "each",
 +
                    "none"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "symbolDash": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "type": "number"
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/arrayValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolDashOffset": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolFillColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolOffset": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolOpacity": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolSize": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolStrokeColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolStrokeWidth": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "symbolType": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "format": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "year": {
 +
                      "type": "string"
 +
                    },
 +
                    "quarter": {
 +
                      "type": "string"
 +
                    },
 +
                    "month": {
 +
                      "type": "string"
 +
                    },
 +
                    "date": {
 +
                      "type": "string"
 +
                    },
 +
                    "week": {
 +
                      "type": "string"
 +
                    },
 +
                    "day": {
 +
                      "type": "string"
 +
                    },
 +
                    "hours": {
 +
                      "type": "string"
 +
                    },
 +
                    "minutes": {
 +
                      "type": "string"
 +
                    },
 +
                    "seconds": {
 +
                      "type": "string"
 +
                    },
 +
                    "milliseconds": {
 +
                      "type": "string"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "formatType": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "number",
 +
                    "time",
 +
                    "utc"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "labelAlign": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "left",
 +
                    "right",
 +
                    "center"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/alignValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelBaseline": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "top",
 +
                    "middle",
 +
                    "bottom",
 +
                    "alphabetic",
 +
                    "line-top",
 +
                    "line-bottom"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/baselineValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelFont": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelFontSize": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelFontStyle": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelFontWeight": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    null,
 +
                    "normal",
 +
                    "bold",
 +
                    "lighter",
 +
                    "bolder",
 +
                    "100",
 +
                    "200",
 +
                    "300",
 +
                    "400",
 +
                    "500",
 +
                    "600",
 +
                    "700",
 +
                    "800",
 +
                    "900",
 +
                    100,
 +
                    200,
 +
                    300,
 +
                    400,
 +
                    500,
 +
                    600,
 +
                    700,
 +
                    800,
 +
                    900
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/fontWeightValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelLimit": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelOffset": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelOpacity": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "labelOverlap": {
 +
              "$ref": "#/refs/labelOverlap"
 +
            },
 +
            "labelSeparation": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "encode": {
 +
              "type": "object",
 +
              "properties": {
 +
                "title": {
 +
                  "$ref": "#/defs/guideEncode"
 +
                },
 +
                "labels": {
 +
                  "$ref": "#/defs/guideEncode"
 +
                },
 +
                "legend": {
 +
                  "$ref": "#/defs/guideEncode"
 +
                },
 +
                "entries": {
 +
                  "$ref": "#/defs/guideEncode"
 +
                },
 +
                "symbols": {
 +
                  "$ref": "#/defs/guideEncode"
 +
                },
 +
                "gradient": {
 +
                  "$ref": "#/defs/guideEncode"
 +
                }
 +
              },
 +
              "additionalProperties": false
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "anyOf": [
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "size"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "shape"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "fill"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "stroke"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "opacity"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "strokeDash"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "required": [
 +
                "strokeWidth"
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "mark": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "$ref": "#/refs/marktype"
 +
        },
 +
        "role": {
 +
          "type": "string"
 +
        },
 +
        "name": {
 +
          "type": "string"
 +
        },
 +
        "description": {
 +
          "type": "string"
 +
        },
 +
        "aria": {
 +
          "type": "boolean"
 +
        },
 +
        "style": {
 +
          "$ref": "#/refs/style"
 +
        },
 +
        "key": {
 +
          "type": "string"
 +
        },
 +
        "clip": {
 +
          "$ref": "#/refs/markclip"
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "interactive": {
 +
          "$ref": "#/refs/booleanOrSignal"
 +
        },
 +
        "encode": {
 +
          "$ref": "#/defs/encode"
 +
        },
 +
        "transform": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/transformMark"
 +
          }
 +
        },
 +
        "on": {
 +
          "$ref": "#/defs/onMarkTrigger"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ]
 +
    },
 +
    "markGroup": {
 +
      "allOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "group"
 +
              ]
 +
            },
 +
            "from": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/from"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/facet"
 +
                }
 +
              ]
 +
            }
 +
          },
 +
          "required": [
 +
            "type"
 +
          ]
 +
        },
 +
        {
 +
          "$ref": "#/defs/mark"
 +
        },
 +
        {
 +
          "$ref": "#/defs/scope"
 +
        }
 +
      ]
 +
    },
 +
    "markVisual": {
 +
      "allOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "not": {
 +
                "enum": [
 +
                  "group"
 +
                ]
 +
              }
 +
            },
 +
            "from": {
 +
              "$ref": "#/refs/from"
 +
            }
 +
          }
 +
        },
 +
        {
 +
          "$ref": "#/defs/mark"
 +
        }
 +
      ]
 +
    },
 +
    "listener": {
 +
      "oneOf": [
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "scale": {
 +
              "type": "string"
 +
            }
 +
          },
 +
          "required": [
 +
            "scale"
 +
          ]
 +
        },
 +
        {
 +
          "$ref": "#/defs/stream"
 +
        }
 +
      ]
 +
    },
 +
    "onEvents": {
 +
      "type": "array",
 +
      "items": {
 +
        "allOf": [
 +
          {
 +
            "type": "object",
 +
            "properties": {
 +
              "events": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/selector"
 +
                  },
 +
                  {
 +
                    "$ref": "#/defs/listener"
 +
                  },
 +
                  {
 +
                    "type": "array",
 +
                    "items": {
 +
                      "$ref": "#/defs/listener"
 +
                    },
 +
                    "minItems": 1
 +
                  }
 +
                ]
 +
              },
 +
              "force": {
 +
                "type": "boolean"
 +
              }
 +
            },
 +
            "required": [
 +
              "events"
 +
            ]
 +
          },
 +
          {
 +
            "oneOf": [
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "encode": {
 +
                    "type": "string"
 +
                  }
 +
                },
 +
                "required": [
 +
                  "encode"
 +
                ]
 +
              },
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "update": {
 +
                    "oneOf": [
 +
                      {
 +
                        "$ref": "#/refs/exprString"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "properties": {
 +
                          "value": {}
 +
                        },
 +
                        "required": [
 +
                          "value"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                "required": [
 +
                  "update"
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        ]
 +
      }
 +
    },
 +
    "onTrigger": {
 +
      "type": "array",
 +
      "items": {
 +
        "type": "object",
 +
        "properties": {
 +
          "trigger": {
 +
            "$ref": "#/refs/exprString"
 +
          },
 +
          "insert": {
 +
            "$ref": "#/refs/exprString"
 +
          },
 +
          "remove": {
 +
            "oneOf": [
 +
              {
 +
                "type": "boolean"
 +
              },
 +
              {
 +
                "$ref": "#/refs/exprString"
 +
              }
 +
            ]
 +
          },
 +
          "toggle": {
 +
            "$ref": "#/refs/exprString"
 +
          },
 +
          "modify": {
 +
            "$ref": "#/refs/exprString"
 +
          },
 +
          "values": {
 +
            "$ref": "#/refs/exprString"
 +
          }
 +
        },
 +
        "required": [
 +
          "trigger"
 +
        ],
 +
        "additionalProperties": false
 +
      }
 +
    },
 +
    "onMarkTrigger": {
 +
      "type": "array",
 +
      "items": {
 +
        "type": "object",
 +
        "properties": {
 +
          "trigger": {
 +
            "$ref": "#/refs/exprString"
 +
          },
 +
          "modify": {
 +
            "$ref": "#/refs/exprString"
 +
          },
 +
          "values": {
 +
            "$ref": "#/refs/exprString"
 +
          }
 +
        },
 +
        "required": [
 +
          "trigger"
 +
        ],
 +
        "additionalProperties": false
 +
      }
 +
    },
 +
    "padding": {
 +
      "oneOf": [
 +
        {
 +
          "type": "number"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "top": {
 +
              "type": "number"
 +
            },
 +
            "bottom": {
 +
              "type": "number"
 +
            },
 +
            "left": {
 +
              "type": "number"
 +
            },
 +
            "right": {
 +
              "type": "number"
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "projection": {
 +
      "type": "object",
 +
      "properties": {
 +
        "name": {
 +
          "type": "string"
 +
        },
 +
        "type": {
 +
          "$ref": "#/refs/stringOrSignal"
 +
        },
 +
        "clipAngle": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "clipExtent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "type": "array",
 +
                    "items": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "minItems": 2,
 +
                    "maxItems": 2
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "scale": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "translate": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/numberOrSignal"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "center": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/numberOrSignal"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "rotate": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/numberOrSignal"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 3
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "parallels": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/numberOrSignal"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "precision": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "pointRadius": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "fit": {
 +
          "oneOf": [
 +
            {
 +
              "type": "object"
 +
            },
 +
            {
 +
              "type": "array"
 +
            }
 +
          ]
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "type": "array",
 +
                    "items": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "minItems": 2,
 +
                    "maxItems": 2
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/numberOrSignal"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "name"
 +
      ],
 +
      "additionalProperties": true
 +
    },
 +
    "scale": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "identity"
 +
              ]
 +
            },
 +
            "nice": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "ordinal"
 +
              ]
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "data": {
 +
                          "type": "string"
 +
                        },
 +
                        "field": {
 +
                          "$ref": "#/refs/stringOrSignal"
 +
                        },
 +
                        "sort": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "boolean"
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {
 +
                                "field": {
 +
                                  "$ref": "#/refs/stringOrSignal"
 +
                                },
 +
                                "op": {
 +
                                  "$ref": "#/refs/stringOrSignal"
 +
                                },
 +
                                "order": {
 +
                                  "$ref": "#/refs/sortOrder"
 +
                                }
 +
                              },
 +
                              "additionalProperties": false
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "data",
 +
                        "field"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "data": {
 +
                          "type": "string"
 +
                        },
 +
                        "fields": {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/stringOrSignal"
 +
                          },
 +
                          "minItems": 1
 +
                        },
 +
                        "sort": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "boolean"
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {
 +
                                "op": {
 +
                                  "enum": [
 +
                                    "count"
 +
                                  ]
 +
                                },
 +
                                "order": {
 +
                                  "$ref": "#/refs/sortOrder"
 +
                                }
 +
                              },
 +
                              "additionalProperties": false
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {
 +
                                "field": {
 +
                                  "$ref": "#/refs/stringOrSignal"
 +
                                },
 +
                                "op": {
 +
                                  "enum": [
 +
                                    "count",
 +
                                    "min",
 +
                                    "max"
 +
                                  ]
 +
                                },
 +
                                "order": {
 +
                                  "$ref": "#/refs/sortOrder"
 +
                                }
 +
                              },
 +
                              "required": [
 +
                                "field",
 +
                                "op"
 +
                              ],
 +
                              "additionalProperties": false
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "data",
 +
                        "fields"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "fields": {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "object",
 +
                                "properties": {
 +
                                  "data": {
 +
                                    "type": "string"
 +
                                  },
 +
                                  "field": {
 +
                                    "$ref": "#/refs/stringOrSignal"
 +
                                  }
 +
                                },
 +
                                "required": [
 +
                                  "data",
 +
                                  "field"
 +
                                ],
 +
                                "additionalProperties": false
 +
                              },
 +
                              {
 +
                                "type": "array",
 +
                                "items": {
 +
                                  "oneOf": [
 +
                                    {
 +
                                      "type": "string"
 +
                                    },
 +
                                    {
 +
                                      "type": "number"
 +
                                    },
 +
                                    {
 +
                                      "type": "boolean"
 +
                                    }
 +
                                  ]
 +
                                }
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          },
 +
                          "minItems": 1
 +
                        },
 +
                        "sort": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "boolean"
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {
 +
                                "op": {
 +
                                  "enum": [
 +
                                    "count"
 +
                                  ]
 +
                                },
 +
                                "order": {
 +
                                  "$ref": "#/refs/sortOrder"
 +
                                }
 +
                              },
 +
                              "additionalProperties": false
 +
                            },
 +
                            {
 +
                              "type": "object",
 +
                              "properties": {
 +
                                "field": {
 +
                                  "$ref": "#/refs/stringOrSignal"
 +
                                },
 +
                                "op": {
 +
                                  "enum": [
 +
                                    "count",
 +
                                    "min",
 +
                                    "max"
 +
                                  ]
 +
                                },
 +
                                "order": {
 +
                                  "$ref": "#/refs/sortOrder"
 +
                                }
 +
                              },
 +
                              "required": [
 +
                                "field",
 +
                                "op"
 +
                              ],
 +
                              "additionalProperties": false
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "fields"
 +
                      ],
 +
                      "additionalProperties": false
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "domainImplicit": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "band"
 +
              ]
 +
            },
 +
            "paddingInner": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "step": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "step"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "paddingOuter": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "align": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "point"
 +
              ]
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "step": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "step"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "paddingOuter": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "align": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "quantize",
 +
                "threshold"
 +
              ]
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "nice": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "zero": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "quantile"
 +
              ]
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "bin-ordinal"
 +
              ]
 +
            },
 +
            "bins": {
 +
              "$ref": "#/refs/scaleBins"
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "time",
 +
                "utc"
 +
              ]
 +
            },
 +
            "nice": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "enum": [
 +
                    "millisecond",
 +
                    "second",
 +
                    "minute",
 +
                    "hour",
 +
                    "day",
 +
                    "week",
 +
                    "month",
 +
                    "year"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "interval": {
 +
                      "oneOf": [
 +
                        {
 +
                          "enum": [
 +
                            "millisecond",
 +
                            "second",
 +
                            "minute",
 +
                            "hour",
 +
                            "day",
 +
                            "week",
 +
                            "month",
 +
                            "year"
 +
                          ]
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "step": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "interval"
 +
                  ],
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "bins": {
 +
              "$ref": "#/refs/scaleBins"
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "clamp": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "linear",
 +
                "sqrt",
 +
                "sequential"
 +
              ]
 +
            },
 +
            "nice": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "zero": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "bins": {
 +
              "$ref": "#/refs/scaleBins"
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "clamp": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "log"
 +
              ]
 +
            },
 +
            "base": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "nice": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "zero": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "bins": {
 +
              "$ref": "#/refs/scaleBins"
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "clamp": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "pow"
 +
              ]
 +
            },
 +
            "exponent": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "nice": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "zero": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "bins": {
 +
              "$ref": "#/refs/scaleBins"
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "clamp": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "enum": [
 +
                "symlog"
 +
              ]
 +
            },
 +
            "constant": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "nice": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "zero": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "range": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "width",
 +
                    "height",
 +
                    "symbol",
 +
                    "category",
 +
                    "ordinal",
 +
                    "ramp",
 +
                    "diverging",
 +
                    "heatmap"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "scheme": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "oneOf": [
 +
                              {
 +
                                "type": "string"
 +
                              },
 +
                              {
 +
                                "$ref": "#/refs/signal"
 +
                              }
 +
                            ]
 +
                          }
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    },
 +
                    "count": {
 +
                      "$ref": "#/refs/numberOrSignal"
 +
                    },
 +
                    "extent": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "array",
 +
                          "items": {
 +
                            "$ref": "#/refs/numberOrSignal"
 +
                          },
 +
                          "numItems": 2
 +
                        },
 +
                        {
 +
                          "$ref": "#/refs/signal"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "scheme"
 +
                  ],
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "bins": {
 +
              "$ref": "#/refs/scaleBins"
 +
            },
 +
            "interpolate": {
 +
              "$ref": "#/refs/scaleInterpolate"
 +
            },
 +
            "clamp": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "padding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "domain": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "oneOf": [
 +
                      {
 +
                        "type": "null"
 +
                      },
 +
                      {
 +
                        "type": "boolean"
 +
                      },
 +
                      {
 +
                        "type": "string"
 +
                      },
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "type": "array",
 +
                        "items": {
 +
                          "$ref": "#/refs/numberOrSignal"
 +
                        }
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                {
 +
                  "$ref": "#/refs/scaleData"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "domainMin": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMax": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainMid": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "domainRaw": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "array"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "reverse": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            },
 +
            "round": {
 +
              "$ref": "#/refs/booleanOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type",
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "scope": {
 +
      "type": "object",
 +
      "properties": {
 +
        "encode": {
 +
          "$ref": "#/defs/encode"
 +
        },
 +
        "layout": {
 +
          "$ref": "#/defs/layout"
 +
        },
 +
        "signals": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/signal"
 +
          }
 +
        },
 +
        "data": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/data"
 +
          }
 +
        },
 +
        "scales": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/scale"
 +
          }
 +
        },
 +
        "projections": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/projection"
 +
          }
 +
        },
 +
        "axes": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/axis"
 +
          }
 +
        },
 +
        "legends": {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/defs/legend"
 +
          }
 +
        },
 +
        "title": {
 +
          "$ref": "#/defs/title"
 +
        },
 +
        "marks": {
 +
          "type": "array",
 +
          "items": {
 +
            "oneOf": [
 +
              {
 +
                "$ref": "#/defs/markGroup"
 +
              },
 +
              {
 +
                "$ref": "#/defs/markVisual"
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        "usermeta": {
 +
          "type": "object"
 +
        }
 +
      }
 +
    },
 +
    "signalName": {
 +
      "type": "string",
 +
      "not": {
 +
        "enum": [
 +
          "parent",
 +
          "datum",
 +
          "event",
 +
          "item"
 +
        ]
 +
      }
 +
    },
 +
    "signal": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "name": {
 +
              "$ref": "#/defs/signalName"
 +
            },
 +
            "description": {
 +
              "type": "string"
 +
            },
 +
            "push": {
 +
              "enum": [
 +
                "outer"
 +
              ]
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onEvents"
 +
            }
 +
          },
 +
          "required": [
 +
            "name",
 +
            "push"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "name": {
 +
              "$ref": "#/defs/signalName"
 +
            },
 +
            "description": {
 +
              "type": "string"
 +
            },
 +
            "value": {},
 +
            "react": {
 +
              "type": "boolean",
 +
              "default": true
 +
            },
 +
            "update": {
 +
              "$ref": "#/refs/exprString"
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onEvents"
 +
            },
 +
            "bind": {
 +
              "$ref": "#/defs/bind"
 +
            }
 +
          },
 +
          "required": [
 +
            "name"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "name": {
 +
              "$ref": "#/defs/signalName"
 +
            },
 +
            "description": {
 +
              "type": "string"
 +
            },
 +
            "value": {},
 +
            "init": {
 +
              "$ref": "#/refs/exprString"
 +
            },
 +
            "on": {
 +
              "$ref": "#/defs/onEvents"
 +
            },
 +
            "bind": {
 +
              "$ref": "#/defs/bind"
 +
            }
 +
          },
 +
          "required": [
 +
            "name",
 +
            "init"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "stream": {
 +
      "allOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "between": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/defs/stream"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            "marktype": {
 +
              "type": "string"
 +
            },
 +
            "markname": {
 +
              "type": "string"
 +
            },
 +
            "filter": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/exprString"
 +
                },
 +
                {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "$ref": "#/refs/exprString"
 +
                  },
 +
                  "minItems": 1
 +
                }
 +
              ]
 +
            },
 +
            "throttle": {
 +
              "type": "number"
 +
            },
 +
            "debounce": {
 +
              "type": "number"
 +
            },
 +
            "consume": {
 +
              "type": "boolean"
 +
            }
 +
          }
 +
        },
 +
        {
 +
          "oneOf": [
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "type": {
 +
                  "type": "string"
 +
                },
 +
                "source": {
 +
                  "type": "string"
 +
                }
 +
              },
 +
              "required": [
 +
                "type"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "stream": {
 +
                  "$ref": "#/defs/stream"
 +
                }
 +
              },
 +
              "required": [
 +
                "stream"
 +
              ]
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "merge": {
 +
                  "type": "array",
 +
                  "items": {
 +
                    "$ref": "#/defs/stream"
 +
                  },
 +
                  "minItems": 1
 +
                }
 +
              },
 +
              "required": [
 +
                "merge"
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "title": {
 +
      "oneOf": [
 +
        {
 +
          "type": "string"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "orient": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "none",
 +
                    "left",
 +
                    "right",
 +
                    "top",
 +
                    "bottom"
 +
                  ],
 +
                  "default": "top"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "anchor": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    null,
 +
                    "start",
 +
                    "middle",
 +
                    "end"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/anchorValue"
 +
                }
 +
              ]
 +
            },
 +
            "frame": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "group",
 +
                    "bounds"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "offset": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "aria": {
 +
              "type": "boolean"
 +
            },
 +
            "limit": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "zindex": {
 +
              "type": "number"
 +
            },
 +
            "align": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "left",
 +
                    "right",
 +
                    "center"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/alignValue"
 +
                }
 +
              ]
 +
            },
 +
            "angle": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "baseline": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "top",
 +
                    "middle",
 +
                    "bottom",
 +
                    "alphabetic",
 +
                    "line-top",
 +
                    "line-bottom"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/baselineValue"
 +
                }
 +
              ]
 +
            },
 +
            "dx": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "dy": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "text": {
 +
              "$ref": "#/refs/textOrSignal"
 +
            },
 +
            "color": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "font": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "fontSize": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "fontStyle": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "fontWeight": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    null,
 +
                    "normal",
 +
                    "bold",
 +
                    "lighter",
 +
                    "bolder",
 +
                    "100",
 +
                    "200",
 +
                    "300",
 +
                    "400",
 +
                    "500",
 +
                    "600",
 +
                    "700",
 +
                    "800",
 +
                    "900",
 +
                    100,
 +
                    200,
 +
                    300,
 +
                    400,
 +
                    500,
 +
                    600,
 +
                    700,
 +
                    800,
 +
                    900
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/fontWeightValue"
 +
                }
 +
              ]
 +
            },
 +
            "lineHeight": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitle": {
 +
              "$ref": "#/refs/textOrSignal"
 +
            },
 +
            "subtitleColor": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "null"
 +
                },
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitleFont": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitleFontSize": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitleFontStyle": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "string"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/stringValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitleFontWeight": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    null,
 +
                    "normal",
 +
                    "bold",
 +
                    "lighter",
 +
                    "bolder",
 +
                    "100",
 +
                    "200",
 +
                    "300",
 +
                    "400",
 +
                    "500",
 +
                    "600",
 +
                    "700",
 +
                    "800",
 +
                    "900",
 +
                    100,
 +
                    200,
 +
                    300,
 +
                    400,
 +
                    500,
 +
                    600,
 +
                    700,
 +
                    800,
 +
                    900
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/fontWeightValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitleLineHeight": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "number"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/numberValue"
 +
                }
 +
              ]
 +
            },
 +
            "subtitlePadding": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "encode": {
 +
              "anyOf": [
 +
                {
 +
                  "type": "object",
 +
                  "additionalProperties": false,
 +
                  "patternProperties": {
 +
                    "^(?!interactive|name|style).+$": {
 +
                      "$ref": "#/defs/encodeEntry"
 +
                    }
 +
                  }
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "group": {
 +
                      "$ref": "#/defs/guideEncode"
 +
                    },
 +
                    "title": {
 +
                      "$ref": "#/defs/guideEncode"
 +
                    },
 +
                    "subtitle": {
 +
                      "$ref": "#/defs/guideEncode"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            },
 +
            "name": {
 +
              "type": "string"
 +
            },
 +
            "interactive": {
 +
              "type": "boolean"
 +
            },
 +
            "style": {
 +
              "$ref": "#/refs/style"
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "transform": {
 +
      "oneOf": [
 +
        {
 +
          "$ref": "#/defs/crossfilterTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/resolvefilterTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/linkpathTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/pieTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/stackTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/forceTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/contourTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geojsonTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geopathTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geopointTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geoshapeTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/graticuleTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/heatmapTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/isocontourTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/kde2dTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/nestTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/packTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/partitionTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/stratifyTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/treeTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/treelinksTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/treemapTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/labelTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/loessTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/regressionTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/aggregateTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/binTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/collectTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/countpatternTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/crossTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/densityTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/dotbinTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/extentTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/filterTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/flattenTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/foldTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/formulaTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/imputeTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/joinaggregateTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/kdeTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/lookupTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/pivotTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/projectTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/quantileTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/sampleTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/sequenceTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/timeunitTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/windowTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/identifierTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/voronoiTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/wordcloudTransform"
 +
        }
 +
      ]
 +
    },
 +
    "transformMark": {
 +
      "oneOf": [
 +
        {
 +
          "$ref": "#/defs/crossfilterTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/resolvefilterTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/linkpathTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/pieTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/stackTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/forceTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geojsonTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geopathTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geopointTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/geoshapeTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/heatmapTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/packTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/partitionTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/stratifyTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/treeTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/treemapTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/labelTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/binTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/collectTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/dotbinTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/extentTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/formulaTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/joinaggregateTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/lookupTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/sampleTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/timeunitTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/windowTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/identifierTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/voronoiTransform"
 +
        },
 +
        {
 +
          "$ref": "#/defs/wordcloudTransform"
 +
        }
 +
      ]
 +
    },
 +
    "crossfilterTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "crossfilter"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "query": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {}
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "fields",
 +
        "query"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "resolvefilterTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "resolvefilter"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "ignore": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "filter": {}
 +
      },
 +
      "required": [
 +
        "type",
 +
        "ignore",
 +
        "filter"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "linkpathTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "linkpath"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "sourceX": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ],
 +
          "default": "source.x"
 +
        },
 +
        "sourceY": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ],
 +
          "default": "source.y"
 +
        },
 +
        "targetX": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ],
 +
          "default": "target.x"
 +
        },
 +
        "targetY": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ],
 +
          "default": "target.y"
 +
        },
 +
        "orient": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "horizontal",
 +
                "vertical",
 +
                "radial"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "vertical"
 +
        },
 +
        "shape": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "line",
 +
                "arc",
 +
                "curve",
 +
                "diagonal",
 +
                "orthogonal"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "line"
 +
        },
 +
        "require": {
 +
          "$ref": "#/refs/signal"
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "path"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "pieTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "pie"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "startAngle": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "endAngle": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 6.283185307179586
 +
        },
 +
        "sort": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "startAngle",
 +
            "endAngle"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "stackTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "stack"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "offset": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "zero",
 +
                "center",
 +
                "normalize"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "zero"
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "y0",
 +
            "y1"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "forceTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "force"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "static": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "restart": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "iterations": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 300
 +
        },
 +
        "alpha": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 1
 +
        },
 +
        "alphaMin": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 0.001
 +
        },
 +
        "alphaTarget": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "velocityDecay": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 0.4
 +
        },
 +
        "forces": {
 +
          "type": "array",
 +
          "items": {
 +
            "oneOf": [
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "force": {
 +
                    "enum": [
 +
                      "center"
 +
                    ]
 +
                  },
 +
                  "x": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ]
 +
                  },
 +
                  "y": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                "required": [
 +
                  "force"
 +
                ],
 +
                "additionalProperties": false
 +
              },
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "force": {
 +
                    "enum": [
 +
                      "collide"
 +
                    ]
 +
                  },
 +
                  "radius": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/paramField"
 +
                      }
 +
                    ]
 +
                  },
 +
                  "strength": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 0.7
 +
                  },
 +
                  "iterations": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 1
 +
                  }
 +
                },
 +
                "required": [
 +
                  "force"
 +
                ],
 +
                "additionalProperties": false
 +
              },
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "force": {
 +
                    "enum": [
 +
                      "nbody"
 +
                    ]
 +
                  },
 +
                  "strength": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": -30
 +
                  },
 +
                  "theta": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 0.9
 +
                  },
 +
                  "distanceMin": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 1
 +
                  },
 +
                  "distanceMax": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                "required": [
 +
                  "force"
 +
                ],
 +
                "additionalProperties": false
 +
              },
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "force": {
 +
                    "enum": [
 +
                      "link"
 +
                    ]
 +
                  },
 +
                  "links": {
 +
                    "type": "string"
 +
                  },
 +
                  "id": {
 +
                    "oneOf": [
 +
                      {
 +
                        "$ref": "#/refs/scaleField"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/paramField"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      }
 +
                    ]
 +
                  },
 +
                  "distance": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/paramField"
 +
                      }
 +
                    ],
 +
                    "default": 30
 +
                  },
 +
                  "strength": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/paramField"
 +
                      }
 +
                    ]
 +
                  },
 +
                  "iterations": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 1
 +
                  }
 +
                },
 +
                "required": [
 +
                  "force"
 +
                ],
 +
                "additionalProperties": false
 +
              },
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "force": {
 +
                    "enum": [
 +
                      "x"
 +
                    ]
 +
                  },
 +
                  "strength": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 0.1
 +
                  },
 +
                  "x": {
 +
                    "oneOf": [
 +
                      {
 +
                        "$ref": "#/refs/scaleField"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/paramField"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                "required": [
 +
                  "force"
 +
                ],
 +
                "additionalProperties": false
 +
              },
 +
              {
 +
                "type": "object",
 +
                "properties": {
 +
                  "force": {
 +
                    "enum": [
 +
                      "y"
 +
                    ]
 +
                  },
 +
                  "strength": {
 +
                    "anyOf": [
 +
                      {
 +
                        "type": "number"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/signal"
 +
                      }
 +
                    ],
 +
                    "default": 0.1
 +
                  },
 +
                  "y": {
 +
                    "oneOf": [
 +
                      {
 +
                        "$ref": "#/refs/scaleField"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/paramField"
 +
                      },
 +
                      {
 +
                        "$ref": "#/refs/expr"
 +
                      }
 +
                    ]
 +
                  }
 +
                },
 +
                "required": [
 +
                  "force"
 +
                ],
 +
                "additionalProperties": false
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            "x",
 +
            "y",
 +
            "vx",
 +
            "vy"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "contourTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "contour"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "values": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "x": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "y": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "weight": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "cellSize": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "bandwidth": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "count": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "nice": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "thresholds": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "smooth": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "size"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "geojsonTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "geojson"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "geojson": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "geopathTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "geopath"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "projection": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "pointRadius": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "path"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "geopointTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "geopoint"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "projection": {
 +
          "type": "string"
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "x",
 +
            "y"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "projection",
 +
        "fields"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "geoshapeTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "geoshape"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "projection": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ],
 +
          "default": "datum"
 +
        },
 +
        "pointRadius": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "shape"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "graticuleTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "graticule"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {}
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "extentMajor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {}
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "extentMinor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {}
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "step": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "stepMajor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            90,
 +
            360
 +
          ]
 +
        },
 +
        "stepMinor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            10,
 +
            10
 +
          ]
 +
        },
 +
        "precision": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 2.5
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "heatmapTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "heatmap"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "color": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "opacity": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "resolve": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "shared",
 +
                "independent"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "independent"
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "image"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "isocontourTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "isocontour"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "thresholds": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "levels": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "nice": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "resolve": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "shared",
 +
                "independent"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "independent"
 +
        },
 +
        "zero": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "smooth": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "scale": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "translate": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "type": "null"
 +
            }
 +
          ],
 +
          "default": "contour"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "kde2dTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "kde2d"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "x": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "y": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "weight": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "cellSize": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "bandwidth": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "counts": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "grid"
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "size",
 +
        "x",
 +
        "y"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "nestTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "nest"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "keys": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "generate": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "packTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "pack"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "padding": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "radius": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 5,
 +
          "minItems": 5,
 +
          "default": [
 +
            "x",
 +
            "y",
 +
            "r",
 +
            "depth",
 +
            "children"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "partitionTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "partition"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "padding": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "round": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 6,
 +
          "minItems": 6,
 +
          "default": [
 +
            "x0",
 +
            "y0",
 +
            "x1",
 +
            "y1",
 +
            "depth",
 +
            "children"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "stratifyTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "stratify"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "key": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "parentKey": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "key",
 +
        "parentKey"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "treeTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "tree"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "method": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "tidy",
 +
                "cluster"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "tidy"
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "nodeSize": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "separation": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 4,
 +
          "minItems": 4,
 +
          "default": [
 +
            "x",
 +
            "y",
 +
            "depth",
 +
            "children"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "treelinksTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "treelinks"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "treemapTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "treemap"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "method": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "squarify",
 +
                "resquarify",
 +
                "binary",
 +
                "dice",
 +
                "slice",
 +
                "slicedice"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "squarify"
 +
        },
 +
        "padding": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "paddingInner": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "paddingOuter": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "paddingTop": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "paddingRight": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "paddingBottom": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "paddingLeft": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "ratio": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 1.618033988749895
 +
        },
 +
        "round": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 6,
 +
          "minItems": 6,
 +
          "default": [
 +
            "x0",
 +
            "y0",
 +
            "x1",
 +
            "y1",
 +
            "depth",
 +
            "children"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "labelTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "label"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "anchor": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            "top-left",
 +
            "left",
 +
            "bottom-left",
 +
            "top",
 +
            "bottom",
 +
            "top-right",
 +
            "right",
 +
            "bottom-right"
 +
          ]
 +
        },
 +
        "offset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            1
 +
          ]
 +
        },
 +
        "padding": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "lineAnchor": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "end"
 +
        },
 +
        "markIndex": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "avoidBaseMark": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "avoidMarks": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "string"
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "method": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "naive"
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 5,
 +
          "minItems": 5,
 +
          "default": [
 +
            "x",
 +
            "y",
 +
            "opacity",
 +
            "align",
 +
            "baseline"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "size"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "loessTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "loess"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "x": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "y": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "bandwidth": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 0.3
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "x",
 +
        "y"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "regressionTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "regression"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "x": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "y": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "method": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "linear"
 +
        },
 +
        "order": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 3
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "params": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "x",
 +
        "y"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "aggregateTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "aggregate"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "ops": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "enum": [
 +
                      "values",
 +
                      "count",
 +
                      "__count__",
 +
                      "missing",
 +
                      "valid",
 +
                      "sum",
 +
                      "product",
 +
                      "mean",
 +
                      "average",
 +
                      "variance",
 +
                      "variancep",
 +
                      "stdev",
 +
                      "stdevp",
 +
                      "stderr",
 +
                      "distinct",
 +
                      "ci0",
 +
                      "ci1",
 +
                      "median",
 +
                      "q1",
 +
                      "q3",
 +
                      "min",
 +
                      "max",
 +
                      "argmin",
 +
                      "argmax"
 +
                    ]
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "drop": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "cross": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "key": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "binTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "bin"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "interval": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "anchor": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "maxbins": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 20
 +
        },
 +
        "base": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 10
 +
        },
 +
        "divide": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            5,
 +
            2
 +
          ]
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "span": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "step": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "steps": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "minstep": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "nice": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "name": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "bin0",
 +
            "bin1"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field",
 +
        "extent"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "collectTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "collect"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "countpatternTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "countpattern"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "case": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "upper",
 +
                "lower",
 +
                "mixed"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "mixed"
 +
        },
 +
        "pattern": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "[\\w\"]+"
 +
        },
 +
        "stopwords": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "text",
 +
            "count"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "crossTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "cross"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "filter": {
 +
          "$ref": "#/refs/exprString"
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "a",
 +
            "b"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "densityTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "density"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "steps": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "minsteps": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 25
 +
        },
 +
        "maxsteps": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 200
 +
        },
 +
        "method": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "pdf"
 +
        },
 +
        "distribution": {
 +
          "oneOf": [
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "function": {
 +
                  "enum": [
 +
                    "normal"
 +
                  ]
 +
                },
 +
                "mean": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                },
 +
                "stdev": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ],
 +
                  "default": 1
 +
                }
 +
              },
 +
              "required": [
 +
                "function"
 +
              ],
 +
              "additionalProperties": false
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "function": {
 +
                  "enum": [
 +
                    "lognormal"
 +
                  ]
 +
                },
 +
                "mean": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                },
 +
                "stdev": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ],
 +
                  "default": 1
 +
                }
 +
              },
 +
              "required": [
 +
                "function"
 +
              ],
 +
              "additionalProperties": false
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "function": {
 +
                  "enum": [
 +
                    "uniform"
 +
                  ]
 +
                },
 +
                "min": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                },
 +
                "max": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ],
 +
                  "default": 1
 +
                }
 +
              },
 +
              "required": [
 +
                "function"
 +
              ],
 +
              "additionalProperties": false
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "function": {
 +
                  "enum": [
 +
                    "kde"
 +
                  ]
 +
                },
 +
                "field": {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/scaleField"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/paramField"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/expr"
 +
                    }
 +
                  ]
 +
                },
 +
                "from": {
 +
                  "type": "string"
 +
                },
 +
                "bandwidth": {
 +
                  "anyOf": [
 +
                    {
 +
                      "type": "number"
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                }
 +
              },
 +
              "required": [
 +
                "function",
 +
                "field"
 +
              ],
 +
              "additionalProperties": false
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "function": {
 +
                  "enum": [
 +
                    "mixture"
 +
                  ]
 +
                },
 +
                "distributions": {
 +
                  "oneOf": [
 +
                    {
 +
                      "type": "array",
 +
                      "items": {}
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                },
 +
                "weights": {
 +
                  "oneOf": [
 +
                    {
 +
                      "type": "array",
 +
                      "items": {
 +
                        "anyOf": [
 +
                          {
 +
                            "type": "number"
 +
                          },
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          }
 +
                        ]
 +
                      }
 +
                    },
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    }
 +
                  ]
 +
                }
 +
              },
 +
              "required": [
 +
                "function"
 +
              ],
 +
              "additionalProperties": false
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            "value",
 +
            "density"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "dotbinTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "dotbin"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "step": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "smooth": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "bin"
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "extentTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "extent"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "filterTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "filter"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "expr": {
 +
          "$ref": "#/refs/exprString"
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "expr"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "flattenTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "flatten"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "index": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "fields"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "foldTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "fold"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "key",
 +
            "value"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "fields"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "formulaTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "formula"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "expr": {
 +
          "$ref": "#/refs/exprString"
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "initonly": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "expr",
 +
        "as"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "imputeTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "impute"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "key": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "keyvals": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {}
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "method": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "value",
 +
                "mean",
 +
                "median",
 +
                "max",
 +
                "min"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "value"
 +
        },
 +
        "value": {}
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field",
 +
        "key"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "joinaggregateTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "joinaggregate"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "ops": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "enum": [
 +
                      "values",
 +
                      "count",
 +
                      "__count__",
 +
                      "missing",
 +
                      "valid",
 +
                      "sum",
 +
                      "product",
 +
                      "mean",
 +
                      "average",
 +
                      "variance",
 +
                      "variancep",
 +
                      "stdev",
 +
                      "stdevp",
 +
                      "stderr",
 +
                      "distinct",
 +
                      "ci0",
 +
                      "ci1",
 +
                      "median",
 +
                      "q1",
 +
                      "q3",
 +
                      "min",
 +
                      "max",
 +
                      "argmin",
 +
                      "argmax"
 +
                    ]
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "key": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "kdeTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "kde"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "cumulative": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "counts": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "bandwidth": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "resolve": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "shared",
 +
                "independent"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "independent"
 +
        },
 +
        "steps": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "minsteps": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 25
 +
        },
 +
        "maxsteps": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 200
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            "value",
 +
            "density"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "lookupTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "lookup"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "from": {
 +
          "type": "string"
 +
        },
 +
        "key": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "values": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "default": {}
 +
      },
 +
      "required": [
 +
        "type",
 +
        "from",
 +
        "key",
 +
        "fields"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "pivotTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "pivot"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "value": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "op": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "values",
 +
                "count",
 +
                "__count__",
 +
                "missing",
 +
                "valid",
 +
                "sum",
 +
                "product",
 +
                "mean",
 +
                "average",
 +
                "variance",
 +
                "variancep",
 +
                "stdev",
 +
                "stdevp",
 +
                "stderr",
 +
                "distinct",
 +
                "ci0",
 +
                "ci1",
 +
                "median",
 +
                "q1",
 +
                "q3",
 +
                "min",
 +
                "max",
 +
                "argmin",
 +
                "argmax"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "sum"
 +
        },
 +
        "limit": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "key": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field",
 +
        "value"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "projectTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "project"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "quantileTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "quantile"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "probs": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "step": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 0.01
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": [
 +
            "prob",
 +
            "value"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "sampleTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "sample"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "size": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 1000
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "sequenceTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "sequence"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "start": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "stop": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "step": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 1
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "data"
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "start",
 +
        "stop"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "timeunitTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "timeunit"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "field": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "interval": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": true
 +
        },
 +
        "units": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "enum": [
 +
                      "year",
 +
                      "quarter",
 +
                      "month",
 +
                      "week",
 +
                      "date",
 +
                      "day",
 +
                      "dayofyear",
 +
                      "hours",
 +
                      "minutes",
 +
                      "seconds",
 +
                      "milliseconds"
 +
                    ]
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "step": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 1
 +
        },
 +
        "maxbins": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": 40
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "timezone": {
 +
          "anyOf": [
 +
            {
 +
              "enum": [
 +
                "local",
 +
                "utc"
 +
              ]
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "local"
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            "unit0",
 +
            "unit1"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "windowTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "window"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "sort": {
 +
          "$ref": "#/refs/compare"
 +
        },
 +
        "groupby": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "ops": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "enum": [
 +
                      "row_number",
 +
                      "rank",
 +
                      "dense_rank",
 +
                      "percent_rank",
 +
                      "cume_dist",
 +
                      "ntile",
 +
                      "lag",
 +
                      "lead",
 +
                      "first_value",
 +
                      "last_value",
 +
                      "nth_value",
 +
                      "prev_value",
 +
                      "next_value",
 +
                      "values",
 +
                      "count",
 +
                      "__count__",
 +
                      "missing",
 +
                      "valid",
 +
                      "sum",
 +
                      "product",
 +
                      "mean",
 +
                      "average",
 +
                      "variance",
 +
                      "variancep",
 +
                      "stdev",
 +
                      "stdevp",
 +
                      "stderr",
 +
                      "distinct",
 +
                      "ci0",
 +
                      "ci1",
 +
                      "median",
 +
                      "q1",
 +
                      "q3",
 +
                      "min",
 +
                      "max",
 +
                      "argmin",
 +
                      "argmax"
 +
                    ]
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "params": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "fields": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/paramField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "frame": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  },
 +
                  {
 +
                    "type": "null"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            null,
 +
            0
 +
          ]
 +
        },
 +
        "ignorePeers": {
 +
          "anyOf": [
 +
            {
 +
              "type": "boolean"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "identifierTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "identifier"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "as"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "voronoiTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "voronoi"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "x": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "y": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "extent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {}
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2,
 +
          "default": [
 +
            [
 +
              -100000,
 +
              -100000
 +
            ],
 +
            [
 +
              100000,
 +
              100000
 +
            ]
 +
          ]
 +
        },
 +
        "as": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "default": "path"
 +
        }
 +
      },
 +
      "required": [
 +
        "type",
 +
        "x",
 +
        "y"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "wordcloudTransform": {
 +
      "type": "object",
 +
      "properties": {
 +
        "type": {
 +
          "enum": [
 +
            "wordcloud"
 +
          ]
 +
        },
 +
        "signal": {
 +
          "type": "string"
 +
        },
 +
        "size": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 2,
 +
          "minItems": 2
 +
        },
 +
        "font": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ],
 +
          "default": "sans-serif"
 +
        },
 +
        "fontStyle": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ],
 +
          "default": "normal"
 +
        },
 +
        "fontWeight": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ],
 +
          "default": "normal"
 +
        },
 +
        "fontSize": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ],
 +
          "default": 14
 +
        },
 +
        "fontSizeRange": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "number"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "type": "null"
 +
            }
 +
          ],
 +
          "default": [
 +
            10,
 +
            50
 +
          ]
 +
        },
 +
        "rotate": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "text": {
 +
          "oneOf": [
 +
            {
 +
              "$ref": "#/refs/scaleField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            }
 +
          ]
 +
        },
 +
        "spiral": {
 +
          "anyOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ]
 +
        },
 +
        "padding": {
 +
          "anyOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            },
 +
            {
 +
              "$ref": "#/refs/expr"
 +
            },
 +
            {
 +
              "$ref": "#/refs/paramField"
 +
            }
 +
          ]
 +
        },
 +
        "as": {
 +
          "oneOf": [
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "anyOf": [
 +
                  {
 +
                    "type": "string"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            {
 +
              "$ref": "#/refs/signal"
 +
            }
 +
          ],
 +
          "maxItems": 7,
 +
          "minItems": 7,
 +
          "default": [
 +
            "x",
 +
            "y",
 +
            "font",
 +
            "fontSize",
 +
            "fontStyle",
 +
            "fontWeight",
 +
            "angle"
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "type"
 +
      ],
 +
      "additionalProperties": false
 +
    }
 +
  },
 +
  "refs": {
 +
    "labelOverlap": {
 +
      "oneOf": [
 +
        {
 +
          "type": "boolean"
 +
        },
 +
        {
 +
          "enum": [
 +
            "parity",
 +
            "greedy"
 +
          ]
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "tickBand": {
 +
      "oneOf": [
 +
        {
 +
          "enum": [
 +
            "center",
 +
            "extent"
 +
          ]
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "tickCount": {
 +
      "oneOf": [
 +
        {
 +
          "type": "number"
 +
        },
 +
        {
 +
          "enum": [
 +
            "millisecond",
 +
            "second",
 +
            "minute",
 +
            "hour",
 +
            "day",
 +
            "week",
 +
            "month",
 +
            "year"
 +
          ]
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "interval": {
 +
              "oneOf": [
 +
                {
 +
                  "enum": [
 +
                    "millisecond",
 +
                    "second",
 +
                    "minute",
 +
                    "hour",
 +
                    "day",
 +
                    "week",
 +
                    "month",
 +
                    "year"
 +
                  ]
 +
                },
 +
                {
 +
                  "$ref": "#/refs/signal"
 +
                }
 +
              ]
 +
            },
 +
            "step": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "interval"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "element": {
 +
      "type": "string"
 +
    },
 +
    "paramField": {
 +
      "type": "object",
 +
      "properties": {
 +
        "field": {
 +
          "type": "string"
 +
        },
 +
        "as": {
 +
          "type": "string"
 +
        }
 +
      },
 +
      "required": [
 +
        "field"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "field": {
 +
      "oneOf": [
 +
        {
 +
          "type": "string"
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "datum": {
 +
              "$ref": "#/refs/field"
 +
            }
 +
          },
 +
          "required": [
 +
            "datum"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "group": {
 +
              "$ref": "#/refs/field"
 +
            },
 +
            "level": {
 +
              "type": "number"
 +
            }
 +
          },
 +
          "required": [
 +
            "group"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "parent": {
 +
              "$ref": "#/refs/field"
 +
            },
 +
            "level": {
 +
              "type": "number"
 +
            }
 +
          },
 +
          "required": [
 +
            "parent"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "scale": {
 +
      "$ref": "#/refs/field"
 +
    },
 +
    "stringModifiers": {
 +
      "type": "object",
 +
      "properties": {
 +
        "scale": {
 +
          "$ref": "#/refs/scale"
 +
        }
 +
      }
 +
    },
 +
    "numberModifiers": {
 +
      "type": "object",
 +
      "properties": {
 +
        "exponent": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "mult": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "offset": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "$ref": "#/refs/numberValue"
 +
            }
 +
          ]
 +
        },
 +
        "round": {
 +
          "type": "boolean",
 +
          "default": false
 +
        },
 +
        "scale": {
 +
          "$ref": "#/refs/scale"
 +
        },
 +
        "band": {
 +
          "oneOf": [
 +
            {
 +
              "type": "number"
 +
            },
 +
            {
 +
              "type": "boolean"
 +
            }
 +
          ]
 +
        },
 +
        "extra": {
 +
          "type": "boolean"
 +
        }
 +
      }
 +
    },
 +
    "anyValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {}
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {}
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "blendValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  null,
 +
                                  "multiply",
 +
                                  "screen",
 +
                                  "overlay",
 +
                                  "darken",
 +
                                  "lighten",
 +
                                  "color-dodge",
 +
                                  "color-burn",
 +
                                  "hard-light",
 +
                                  "soft-light",
 +
                                  "difference",
 +
                                  "exclusion",
 +
                                  "hue",
 +
                                  "saturation",
 +
                                  "color",
 +
                                  "luminosity"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            null,
 +
                            "multiply",
 +
                            "screen",
 +
                            "overlay",
 +
                            "darken",
 +
                            "lighten",
 +
                            "color-dodge",
 +
                            "color-burn",
 +
                            "hard-light",
 +
                            "soft-light",
 +
                            "difference",
 +
                            "exclusion",
 +
                            "hue",
 +
                            "saturation",
 +
                            "color",
 +
                            "luminosity"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "numberValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/numberModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "type": "number"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/numberModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "type": "number"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "stringValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "type": "string"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "type": "string"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "textValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "string"
 +
                                  },
 +
                                  {
 +
                                    "type": "array",
 +
                                    "items": {
 +
                                      "type": "string"
 +
                                    }
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "string"
 +
                            },
 +
                            {
 +
                              "type": "array",
 +
                              "items": {
 +
                                "type": "string"
 +
                              }
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "booleanValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "type": "boolean"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "type": "boolean"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "arrayValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "type": "array"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "type": "array"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "fontWeightValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  null,
 +
                                  "normal",
 +
                                  "bold",
 +
                                  "lighter",
 +
                                  "bolder",
 +
                                  "100",
 +
                                  "200",
 +
                                  "300",
 +
                                  "400",
 +
                                  "500",
 +
                                  "600",
 +
                                  "700",
 +
                                  "800",
 +
                                  "900",
 +
                                  100,
 +
                                  200,
 +
                                  300,
 +
                                  400,
 +
                                  500,
 +
                                  600,
 +
                                  700,
 +
                                  800,
 +
                                  900
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            null,
 +
                            "normal",
 +
                            "bold",
 +
                            "lighter",
 +
                            "bolder",
 +
                            "100",
 +
                            "200",
 +
                            "300",
 +
                            "400",
 +
                            "500",
 +
                            "600",
 +
                            "700",
 +
                            "800",
 +
                            "900",
 +
                            100,
 +
                            200,
 +
                            300,
 +
                            400,
 +
                            500,
 +
                            600,
 +
                            700,
 +
                            800,
 +
                            900
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "anchorValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "start",
 +
                                  "middle",
 +
                                  "end"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "start",
 +
                            "middle",
 +
                            "end"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "alignValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "left",
 +
                                  "right",
 +
                                  "center"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "left",
 +
                            "right",
 +
                            "center"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "baselineValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "top",
 +
                                  "middle",
 +
                                  "bottom",
 +
                                  "alphabetic"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "top",
 +
                            "middle",
 +
                            "bottom",
 +
                            "alphabetic"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "directionValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "horizontal",
 +
                                  "vertical"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "horizontal",
 +
                            "vertical"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "orientValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "left",
 +
                                  "right",
 +
                                  "top",
 +
                                  "bottom"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "left",
 +
                            "right",
 +
                            "top",
 +
                            "bottom"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "strokeCapValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "butt",
 +
                                  "round",
 +
                                  "square"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "butt",
 +
                            "round",
 +
                            "square"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "strokeJoinValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "allOf": [
 +
                  {
 +
                    "$ref": "#/refs/stringModifiers"
 +
                  },
 +
                  {
 +
                    "anyOf": [
 +
                      {
 +
                        "oneOf": [
 +
                          {
 +
                            "$ref": "#/refs/signal"
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "value": {
 +
                                "enum": [
 +
                                  "miter",
 +
                                  "round",
 +
                                  "bevel"
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "value"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "field": {
 +
                                "$ref": "#/refs/field"
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "field"
 +
                            ]
 +
                          },
 +
                          {
 +
                            "type": "object",
 +
                            "properties": {
 +
                              "range": {
 +
                                "oneOf": [
 +
                                  {
 +
                                    "type": "number"
 +
                                  },
 +
                                  {
 +
                                    "type": "boolean"
 +
                                  }
 +
                                ]
 +
                              }
 +
                            },
 +
                            "required": [
 +
                              "range"
 +
                            ]
 +
                          }
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "value"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "scale",
 +
                          "band"
 +
                        ]
 +
                      },
 +
                      {
 +
                        "type": "object",
 +
                        "required": [
 +
                          "offset"
 +
                        ]
 +
                      }
 +
                    ]
 +
                  }
 +
                ]
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "enum": [
 +
                            "miter",
 +
                            "round",
 +
                            "bevel"
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        }
 +
      ]
 +
    },
 +
    "baseColorValue": {
 +
      "oneOf": [
 +
        {
 +
          "allOf": [
 +
            {
 +
              "$ref": "#/refs/stringModifiers"
 +
            },
 +
            {
 +
              "anyOf": [
 +
                {
 +
                  "oneOf": [
 +
                    {
 +
                      "$ref": "#/refs/signal"
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "value": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "string"
 +
                            },
 +
                            {
 +
                              "type": "null"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "value"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "field": {
 +
                          "$ref": "#/refs/field"
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "field"
 +
                      ]
 +
                    },
 +
                    {
 +
                      "type": "object",
 +
                      "properties": {
 +
                        "range": {
 +
                          "oneOf": [
 +
                            {
 +
                              "type": "number"
 +
                            },
 +
                            {
 +
                              "type": "boolean"
 +
                            }
 +
                          ]
 +
                        }
 +
                      },
 +
                      "required": [
 +
                        "range"
 +
                      ]
 +
                    }
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "value"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "scale",
 +
                    "band"
 +
                  ]
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "required": [
 +
                    "offset"
 +
                  ]
 +
                }
 +
              ]
 +
            }
 +
          ]
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "value": {
 +
              "$ref": "#/refs/linearGradient"
 +
            }
 +
          },
 +
          "required": [
 +
            "value"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "value": {
 +
              "$ref": "#/refs/radialGradient"
 +
            }
 +
          },
 +
          "required": [
 +
            "value"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "gradient": {
 +
              "$ref": "#/refs/scale"
 +
            },
 +
            "start": {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "number"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            "stop": {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "number"
 +
              },
 +
              "minItems": 2,
 +
              "maxItems": 2
 +
            },
 +
            "count": {
 +
              "type": "number"
 +
            }
 +
          },
 +
          "required": [
 +
            "gradient"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "color": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/colorRGB"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorHSL"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorLAB"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/colorHCL"
 +
                }
 +
              ]
 +
            }
 +
          },
 +
          "required": [
 +
            "color"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "colorRGB": {
 +
      "type": "object",
 +
      "properties": {
 +
        "r": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "g": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "b": {
 +
          "$ref": "#/refs/numberValue"
 +
        }
 +
      },
 +
      "required": [
 +
        "r",
 +
        "g",
 +
        "b"
 +
      ]
 +
    },
 +
    "colorHSL": {
 +
      "type": "object",
 +
      "properties": {
 +
        "h": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "s": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "l": {
 +
          "$ref": "#/refs/numberValue"
 +
        }
 +
      },
 +
      "required": [
 +
        "h",
 +
        "s",
 +
        "l"
 +
      ]
 +
    },
 +
    "colorLAB": {
 +
      "type": "object",
 +
      "properties": {
 +
        "l": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "a": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "b": {
 +
          "$ref": "#/refs/numberValue"
 +
        }
 +
      },
 +
      "required": [
 +
        "l",
 +
        "a",
 +
        "b"
 +
      ]
 +
    },
 +
    "colorHCL": {
 +
      "type": "object",
 +
      "properties": {
 +
        "h": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "c": {
 +
          "$ref": "#/refs/numberValue"
 +
        },
 +
        "l": {
 +
          "$ref": "#/refs/numberValue"
 +
        }
 +
      },
 +
      "required": [
 +
        "h",
 +
        "c",
 +
        "l"
 +
      ]
 +
    },
 +
    "colorValue": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "allOf": [
 +
              {
 +
                "$ref": "#/defs/rule"
 +
              },
 +
              {
 +
                "$ref": "#/refs/baseColorValue"
 +
              }
 +
            ]
 +
          }
 +
        },
 +
        {
 +
          "$ref": "#/refs/baseColorValue"
 +
        }
 +
      ]
 +
    },
 +
    "gradientStops": {
 +
      "type": "array",
 +
      "items": {
 +
        "type": "object",
 +
        "properties": {
 +
          "offset": {
 +
            "type": "number"
 +
          },
 +
          "color": {
 +
            "type": "string"
 +
          }
 +
        },
 +
        "required": [
 +
          "offset",
 +
          "color"
 +
        ],
 +
        "additionalProperties": false
 +
      }
 +
    },
 +
    "linearGradient": {
 +
      "type": "object",
 +
      "properties": {
 +
        "gradient": {
 +
          "enum": [
 +
            "linear"
 +
          ]
 +
        },
 +
        "id": {
 +
          "type": "string"
 +
        },
 +
        "x1": {
 +
          "type": "number"
 +
        },
 +
        "y1": {
 +
          "type": "number"
 +
        },
 +
        "x2": {
 +
          "type": "number"
 +
        },
 +
        "y2": {
 +
          "type": "number"
 +
        },
 +
        "stops": {
 +
          "$ref": "#/refs/gradientStops"
 +
        }
 +
      },
 +
      "required": [
 +
        "gradient",
 +
        "stops"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "radialGradient": {
 +
      "type": "object",
 +
      "properties": {
 +
        "gradient": {
 +
          "enum": [
 +
            "radial"
 +
          ]
 +
        },
 +
        "id": {
 +
          "type": "string"
 +
        },
 +
        "x1": {
 +
          "type": "number"
 +
        },
 +
        "y1": {
 +
          "type": "number"
 +
        },
 +
        "r1": {
 +
          "type": "number"
 +
        },
 +
        "x2": {
 +
          "type": "number"
 +
        },
 +
        "y2": {
 +
          "type": "number"
 +
        },
 +
        "r2": {
 +
          "type": "number"
 +
        },
 +
        "stops": {
 +
          "$ref": "#/refs/gradientStops"
 +
        }
 +
      },
 +
      "required": [
 +
        "gradient",
 +
        "stops"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "expr": {
 +
      "type": "object",
 +
      "properties": {
 +
        "expr": {
 +
          "type": "string"
 +
        },
 +
        "as": {
 +
          "type": "string"
 +
        }
 +
      },
 +
      "required": [
 +
        "expr"
 +
      ]
 +
    },
 +
    "exprString": {
 +
      "type": "string"
 +
    },
 +
    "compare": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "field": {
 +
              "oneOf": [
 +
                {
 +
                  "$ref": "#/refs/scaleField"
 +
                },
 +
                {
 +
                  "$ref": "#/refs/expr"
 +
                }
 +
              ]
 +
            },
 +
            "order": {
 +
              "$ref": "#/refs/sortOrder"
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "field": {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "$ref": "#/refs/scaleField"
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/expr"
 +
                  }
 +
                ]
 +
              }
 +
            },
 +
            "order": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/sortOrder"
 +
              }
 +
            }
 +
          },
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "from": {
 +
      "type": "object",
 +
      "properties": {
 +
        "data": {
 +
          "type": "string"
 +
        }
 +
      },
 +
      "additionalProperties": false
 +
    },
 +
    "facet": {
 +
      "type": "object",
 +
      "properties": {
 +
        "data": {
 +
          "type": "string"
 +
        },
 +
        "facet": {
 +
          "oneOf": [
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "name": {
 +
                  "type": "string"
 +
                },
 +
                "data": {
 +
                  "type": "string"
 +
                },
 +
                "field": {
 +
                  "type": "string"
 +
                }
 +
              },
 +
              "required": [
 +
                "name",
 +
                "data",
 +
                "field"
 +
              ],
 +
              "additionalProperties": false
 +
            },
 +
            {
 +
              "type": "object",
 +
              "properties": {
 +
                "name": {
 +
                  "type": "string"
 +
                },
 +
                "data": {
 +
                  "type": "string"
 +
                },
 +
                "groupby": {
 +
                  "oneOf": [
 +
                    {
 +
                      "type": "string"
 +
                    },
 +
                    {
 +
                      "type": "array",
 +
                      "items": {
 +
                        "type": "string"
 +
                      }
 +
                    }
 +
                  ]
 +
                },
 +
                "aggregate": {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "cross": {
 +
                      "type": "boolean"
 +
                    },
 +
                    "fields": {
 +
                      "type": "array",
 +
                      "items": {
 +
                        "type": "string"
 +
                      }
 +
                    },
 +
                    "ops": {
 +
                      "type": "array",
 +
                      "items": {
 +
                        "type": "string"
 +
                      }
 +
                    },
 +
                    "as": {
 +
                      "type": "array",
 +
                      "items": {
 +
                        "type": "string"
 +
                      }
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              },
 +
              "required": [
 +
                "name",
 +
                "data",
 +
                "groupby"
 +
              ],
 +
              "additionalProperties": false
 +
            }
 +
          ]
 +
        }
 +
      },
 +
      "required": [
 +
        "facet"
 +
      ],
 +
      "additionalProperties": false
 +
    },
 +
    "markclip": {
 +
      "oneOf": [
 +
        {
 +
          "$ref": "#/refs/booleanOrSignal"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "path": {
 +
              "$ref": "#/refs/stringOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "path"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "sphere": {
 +
              "$ref": "#/refs/stringOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "sphere"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "style": {
 +
      "oneOf": [
 +
        {
 +
          "type": "string"
 +
        },
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "type": "string"
 +
          }
 +
        }
 +
      ]
 +
    },
 +
    "marktype": {
 +
      "type": "string"
 +
    },
 +
    "scaleField": {
 +
      "$ref": "#/refs/stringOrSignal"
 +
    },
 +
    "sortOrder": {
 +
      "oneOf": [
 +
        {
 +
          "enum": [
 +
            "ascending",
 +
            "descending"
 +
          ]
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "scaleBins": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array",
 +
          "items": {
 +
            "$ref": "#/refs/numberOrSignal"
 +
          }
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "step": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "start": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            },
 +
            "stop": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "step"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "scaleInterpolate": {
 +
      "oneOf": [
 +
        {
 +
          "type": "string"
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "type": {
 +
              "$ref": "#/refs/stringOrSignal"
 +
            },
 +
            "gamma": {
 +
              "$ref": "#/refs/numberOrSignal"
 +
            }
 +
          },
 +
          "required": [
 +
            "type"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "scaleData": {
 +
      "oneOf": [
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "data": {
 +
              "type": "string"
 +
            },
 +
            "field": {
 +
              "$ref": "#/refs/stringOrSignal"
 +
            },
 +
            "sort": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "field": {
 +
                      "$ref": "#/refs/stringOrSignal"
 +
                    },
 +
                    "op": {
 +
                      "$ref": "#/refs/stringOrSignal"
 +
                    },
 +
                    "order": {
 +
                      "$ref": "#/refs/sortOrder"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            }
 +
          },
 +
          "required": [
 +
            "data",
 +
            "field"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "data": {
 +
              "type": "string"
 +
            },
 +
            "fields": {
 +
              "type": "array",
 +
              "items": {
 +
                "$ref": "#/refs/stringOrSignal"
 +
              },
 +
              "minItems": 1
 +
            },
 +
            "sort": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "op": {
 +
                      "enum": [
 +
                        "count"
 +
                      ]
 +
                    },
 +
                    "order": {
 +
                      "$ref": "#/refs/sortOrder"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "field": {
 +
                      "$ref": "#/refs/stringOrSignal"
 +
                    },
 +
                    "op": {
 +
                      "enum": [
 +
                        "count",
 +
                        "min",
 +
                        "max"
 +
                      ]
 +
                    },
 +
                    "order": {
 +
                      "$ref": "#/refs/sortOrder"
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "field",
 +
                    "op"
 +
                  ],
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            }
 +
          },
 +
          "required": [
 +
            "data",
 +
            "fields"
 +
          ],
 +
          "additionalProperties": false
 +
        },
 +
        {
 +
          "type": "object",
 +
          "properties": {
 +
            "fields": {
 +
              "type": "array",
 +
              "items": {
 +
                "oneOf": [
 +
                  {
 +
                    "type": "object",
 +
                    "properties": {
 +
                      "data": {
 +
                        "type": "string"
 +
                      },
 +
                      "field": {
 +
                        "$ref": "#/refs/stringOrSignal"
 +
                      }
 +
                    },
 +
                    "required": [
 +
                      "data",
 +
                      "field"
 +
                    ],
 +
                    "additionalProperties": false
 +
                  },
 +
                  {
 +
                    "type": "array",
 +
                    "items": {
 +
                      "oneOf": [
 +
                        {
 +
                          "type": "string"
 +
                        },
 +
                        {
 +
                          "type": "number"
 +
                        },
 +
                        {
 +
                          "type": "boolean"
 +
                        }
 +
                      ]
 +
                    }
 +
                  },
 +
                  {
 +
                    "$ref": "#/refs/signal"
 +
                  }
 +
                ]
 +
              },
 +
              "minItems": 1
 +
            },
 +
            "sort": {
 +
              "oneOf": [
 +
                {
 +
                  "type": "boolean"
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "op": {
 +
                      "enum": [
 +
                        "count"
 +
                      ]
 +
                    },
 +
                    "order": {
 +
                      "$ref": "#/refs/sortOrder"
 +
                    }
 +
                  },
 +
                  "additionalProperties": false
 +
                },
 +
                {
 +
                  "type": "object",
 +
                  "properties": {
 +
                    "field": {
 +
                      "$ref": "#/refs/stringOrSignal"
 +
                    },
 +
                    "op": {
 +
                      "enum": [
 +
                        "count",
 +
                        "min",
 +
                        "max"
 +
                      ]
 +
                    },
 +
                    "order": {
 +
                      "$ref": "#/refs/sortOrder"
 +
                    }
 +
                  },
 +
                  "required": [
 +
                    "field",
 +
                    "op"
 +
                  ],
 +
                  "additionalProperties": false
 +
                }
 +
              ]
 +
            }
 +
          },
 +
          "required": [
 +
            "fields"
 +
          ],
 +
          "additionalProperties": false
 +
        }
 +
      ]
 +
    },
 +
    "selector": {
 +
      "type": "string"
 +
    },
 +
    "signal": {
 +
      "type": "object",
 +
      "properties": {
 +
        "signal": {
 +
          "type": "string"
 +
        }
 +
      },
 +
      "required": [
 +
        "signal"
 +
      ]
 +
    },
 +
    "arrayOrSignal": {
 +
      "oneOf": [
 +
        {
 +
          "type": "array"
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "booleanOrSignal": {
 +
      "oneOf": [
 +
        {
 +
          "type": "boolean"
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "numberOrSignal": {
 +
      "oneOf": [
 +
        {
 +
          "type": "number"
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "stringOrSignal": {
 +
      "oneOf": [
 +
        {
 +
          "type": "string"
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    },
 +
    "textOrSignal": {
 +
      "oneOf": [
 +
        {
 +
          "oneOf": [
 +
            {
 +
              "type": "string"
 +
            },
 +
            {
 +
              "type": "array",
 +
              "items": {
 +
                "type": "string"
 +
              }
 +
            }
 +
          ]
 +
        },
 +
        {
 +
          "$ref": "#/refs/signal"
 +
        }
 +
      ]
 +
    }
 +
  },
 +
  "type": "object",
 +
  "allOf": [
 +
    {
 +
      "$ref": "#/defs/scope"
 +
    },
 +
    {
 +
      "properties": {
 +
        "$schema": {
 +
          "type": "string",
 +
          "format": "uri"
 +
        },
 +
        "config": {
 +
          "type": "object"
 +
        },
 +
        "description": {
 +
          "type": "string"
 +
        },
 +
        "width": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "height": {
 +
          "$ref": "#/refs/numberOrSignal"
 +
        },
 +
        "padding": {
 +
          "$ref": "#/defs/padding"
 +
        },
 +
        "autosize": {
 +
          "$ref": "#/defs/autosize"
 +
        },
 +
        "background": {
 +
          "$ref": "#/defs/background"
 +
        },
 +
        "style": {
 +
          "$ref": "#/refs/style"
 
         }
 
         }
 
       }
 
       }

Revision as of 12:06, 19 October 2020

The Maker Hub is a makerspace open to all George Fox University students for innovating, designing, and creating. It is a 16,000 square foot space located in the Klages Center that comprises several design areas including technical shops, a central tool room, a computer lab, meeting rooms, and general work spaces. The Maker Hub was designed to facilitate learning, encourage entrepreneurship, and add value to the GFU student's educational experience. It's a collaborative environment that is home to senior design and servant engineering teams, guest lectures and community events, design competitions, project exhibitions, and training classes.

The Maker Hub has a limited number of staff and student employees. It is largely run by student volunteers who help with training and overseeing various technical shops. Our students are encouraged to "own" the space. In any public space, there has to be some set of rules that govern the activity in the space. Ideally, we would just use the clever “Rule 0: Don’t make me make a rule.” But, we felt it was better to come up with some overall guiding principles rather than a list of rules. Clearly, there are some obvious “rules” that get implied from these principles, but, we believe that if you embrace the principles, the rules will take care of themselves. These principles we like to call, the 3 commandments: Safety First, Reset the Space, Be Professional. Please explore the 3 commandments page for a deeper explanation. Many of these Wiki pages will have their own "3 commandments" section to cover unique details for equipment and tools.

There is a 6,000 square foot central room known simply as "The Hub" which provides a large work area with benches and tools for general making activities.


To successfully complete the Maker Hub Introduction Foxtale quiz, you will need information from this page, The Hub, and 3 commandments. Scroll down to find the link to the quiz under the "Certification" header.

Facilities

The Maker Hub is comprised of the following facilities. These links describe each area and the resources within those areas.

Equipment

In general, equipment refers to larger machines than those things one might refer to as a "tool." However, in the Maker Hub, equipment is a special category of machines because, by definitions, every piece of equipment requires certified training before an individual is allowed to use it. Information on how to achieve this training is provided on the Wiki page for each piece of equipment. Equipment is marked in the Maker Hub by the use of special icons that are displayed either on, around, or above the equipment. An example icon is this one used for the Horizontal Bandsaw.

Horizontal bandsaw icon.png


The Maker Hub equipment is located in the various facilities and covers various "domains" of activity, from wood, metal, and plastic to electronics, cloths, and crafts. Use the links below to find equipment for each domain.

Certification

Maker Hub Introduction FoxTALE Quiz

Training

How does our training system work?

 FoxTALE Link
Machine Shop
PCB Lab
Prototype Lab
The Vault
Welding Shop
Wood Shop
 FoxTALE Link
3D Scanners
Bead Roller
Belt Sander
Belt/Disc Sander
Bending Brake
Blast Cabinet
Buffers
CNC Router
Compound Miter Saw
Drill Press
Electronics Workstation
F370 3D Printer
Foam Cutter
Formlabs 3D Printer
Hand Bender
Hand Router
Handheld CNC Router
Heat Press
High Speed Camera
Horizontal Bandsaw
Hydraulic Press
Injection Molding Machine
Jewelry Station
Jointer
Lathe
Leatherworking Station
MIG Welder
Markforged 3D Printer
Metal Laser Cutter
Milling Machine
Mug Press
Oscillating Spindle Sander
PCB Printer
Pedestal Grinder
Photo Table
Pick and Place
Planer
Plasma Cutter
Power Carver
Prusa 3D Printer
Reflow Oven
Rework Station
Ring Roller
Rotary Punch
Router Table
Scroll Saw
Serger
Sewing Machine
Sheet Metal Shear
Slip Roller
Soldering Irons
Speedy 300
Speedy 400
Spot Welder
Sublimation Printer
TIG Welder
Table Saw
Through Hole Press
Vacuum Former
Vertical Bandsaw
Vertical Wood Bandsaw
Vinyl Cutter
Vinyl Printer+Cutter
Virtual Reality Welding Station
Waterjet Cutter
Wood Drill Press
Wood Lathe

TVs (Training Ventures)

152 Robot, Egg Shaker, Electronic keyboard, Mood Lamp, Quena, Slide Whistle, T-Shirt, Triangle, Windchimes, Wooden Train Whistle

Staff

Curious to know who is in charge of what machine? Check out the list of Aces.

Tools

Tools (both hand tools and power tools) are stored at various locations in the Maker Hub. Tools do not require certified training before use, but users are expected to familiarize themselves with tool operation by viewing the appropriate Wiki page. Furthermore, as part of the 'Safety First commandment, users are encouraged to seek help and instruction for any tool that they feel uncomfortable using. Volunteers will be available to serve these needs.

Software

A variety of engineering software is available. The use of some software may require the FortiClient VPN when not on George Fox wifi.

Maker Hub Wiki

Go to the Maker Hub Wiki page for information on the structure of this Wiki and how to appropriately edit this Wiki. Also, try out the Sandbox for editing practice. There is also a special google drive for Maker Hub Crew.

<graph> {

 "version": 2,
 "width": 550,
 "height": 400,
 "data": [
   {
     "name": "tree",
     "url": "wikiraw:///Extension:Graph/data/flare-json",
     "format": {"type": "treejson"},
     "transform": [
       {"type": "hierarchy", "field": "size", "size": [400, 500]}
     ]
   }
 ],
 "marks": [
   {
     "type": "path",
     "from": {
       "data": "tree",
       "transform": [
         {
           "type": "filter", "test": "datum.parent"
         },
         {
           "type": "linkpath",
           "sourceX": "parent.layout_y",
           "sourceY": "parent.layout_x",
           "targetX": "layout_y",
           "targetY": "layout_x",
           "shape": "diagonalX"
         }
       ]
     },
     "properties": {
       "enter": {
         "path": {"field": "layout_path"},
         "stroke": {"value": "#ddd"}
       }
     }
   },
   {
     "type": "text",
     "from": {"data": "tree"},
     "properties": {
       "enter": {
         "x": {"field": "layout_y", "offset": -10},
         "y": {"field": "layout_x"},
         "font": {"value": "Helvetica Neue"},
         "fontSize": {"value": 10},
         "align": {"value": "left"},
         "baseline": {"value": "middle"},
         "fill": {"value": "#000"},
         "text": {"field": "name"}
       }
     }
   }
 ]

} <graph> { "name": "flare", "children": [

{
 "name": "noop"
},
{
 "name": "analytics",
 "children": [
  {
   "name": "cluster",
   "children": [
    {"name": "AgglomerativeCluster", "size": 3938},
    {"name": "CommunityStructure", "size": 3812},
    {"name": "HierarchicalCluster", "size": 6714},
    {"name": "MergeEdge", "size": 743}
   ]
  },
  {
   "name": "graph",
   "children": [
    {"name": "BetweennessCentrality", "size": 3534},
    {"name": "LinkDistance", "size": 5731},
    {"name": "MaxFlowMinCut", "size": 7840},
    {"name": "ShortestPaths", "size": 5914},
    {"name": "SpanningTree", "size": 3416}
   ]
  },
  {
   "name": "optimization",
   "children": [
    {"name": "AspectRatioBanker", "size": 7074}
   ]
  }
 ]
},
{
 "name": "animate",
 "children": [
  {"name": "Easing", "size": 17010},
  {"name": "FunctionSequence", "size": 5842},
  {
   "name": "interpolate",
   "children": [
    {"name": "ArrayInterpolator", "size": 1983},
    {"name": "ColorInterpolator", "size": 2047},
    {"name": "DateInterpolator", "size": 1375},
    {"name": "Interpolator", "size": 8746},
    {"name": "MatrixInterpolator", "size": 2202},
    {"name": "NumberInterpolator", "size": 1382},
    {"name": "ObjectInterpolator", "size": 1629},
    {"name": "PointInterpolator", "size": 1675},
    {"name": "RectangleInterpolator", "size": 2042}
   ]
  },
  {"name": "ISchedulable", "size": 1041},
  {"name": "Parallel", "size": 5176},
  {"name": "Pause", "size": 449},
  {"name": "Scheduler", "size": 5593},
  {"name": "Sequence", "size": 5534},
  {"name": "Transition", "size": 9201},
  {"name": "Transitioner", "size": 19975},
  {"name": "TransitionEvent", "size": 1116},
  {"name": "Tween", "size": 6006}
 ]
},
{
 "name": "data",
 "children": [
  {
   "name": "converters",
   "children": [
    {"name": "Converters", "size": 721},
    {"name": "DelimitedTextConverter", "size": 4294},
    {"name": "GraphMLConverter", "size": 9800},
    {"name": "IDataConverter", "size": 1314},
    {"name": "JSONConverter", "size": 2220}
   ]
  },
  {"name": "DataField", "size": 1759},
  {"name": "DataSchema", "size": 2165},
  {"name": "DataSet", "size": 586},
  {"name": "DataSource", "size": 3331},
  {"name": "DataTable", "size": 772},
  {"name": "DataUtil", "size": 3322}
 ]
}

] } {

 "$schema": "https://vega.github.io/schema/vega/v5.json",
 "description": "An example of Cartesian layouts for a node-link diagram of hierarchical data.",
 "width": 600,
 "height": 1600,
 "padding": 5,
 "signals": [
   {
     "name": "labels", "value": true,
     "bind": {"input": "checkbox"}
   },
   {
     "name": "layout", "value": "tidy",
     "bind": {"input": "radio", "options": ["tidy", "cluster"]}
   },
   {
     "name": "links", "value": "diagonal",
     "bind": {
       "input": "select",
       "options": ["line", "curve", "diagonal", "orthogonal"]
     }
   },
   {
     "name": "separation", "value": false,
     "bind": {"input": "checkbox"}
   }
 ],
 "data": [
   {
     "name": "tree",
     "url": "data/flare.json",
     "transform": [
       {
         "type": "stratify",
         "key": "id",
         "parentKey": "parent"
       },
       {
         "type": "tree",
         "method": {"signal": "layout"},
         "size": [{"signal": "height"}, {"signal": "width - 100"}],
         "separation": {"signal": "separation"},
         "as": ["y", "x", "depth", "children"]
       }
     ]
   },
   {
     "name": "links",
     "source": "tree",
     "transform": [
       { "type": "treelinks" },
       {
         "type": "linkpath",
         "orient": "horizontal",
         "shape": {"signal": "links"}
       }
     ]
   }
 ],
 "scales": [
   {
     "name": "color",
     "type": "linear",
     "range": {"scheme": "magma"},
     "domain": {"data": "tree", "field": "depth"},
     "zero": true
   }
 ],
 "marks": [
   {
     "type": "path",
     "from": {"data": "links"},
     "encode": {
       "update": {
         "path": {"field": "path"},
         "stroke": {"value": "#ccc"}
       }
     }
   },
   {
     "type": "symbol",
     "from": {"data": "tree"},
     "encode": {
       "enter": {
         "size": {"value": 100},
         "stroke": {"value": "#fff"}
       },
       "update": {
         "x": {"field": "x"},
         "y": {"field": "y"},
         "fill": {"scale": "color", "field": "depth"}
       }
     }
   },
   {
     "type": "text",
     "from": {"data": "tree"},
     "encode": {
       "enter": {
         "text": {"field": "name"},
         "fontSize": {"value": 9},
         "baseline": {"value": "middle"}
       },
       "update": {
         "x": {"field": "x"},
         "y": {"field": "y"},
         "dx": {"signal": "datum.children ? -7 : 7"},
         "align": {"signal": "datum.children ? 'right' : 'left'"},
         "opacity": {"signal": "labels ? 1 : 0"}
       }
     }
   }
 ]

} {

 "$schema": "http://json-schema.org/draft-06/schema#",
 "title": "Vega Visualization Specification Language",
 "defs": {
   "autosize": {
     "oneOf": [
       {
         "enum": [
           "pad",
           "fit",
           "fit-x",
           "fit-y",
           "none"
         ],
         "default": "pad"
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "pad",
               "fit",
               "fit-x",
               "fit-y",
               "none"
             ],
             "default": "pad"
           },
           "resize": {
             "type": "boolean"
           },
           "contains": {
             "enum": [
               "content",
               "padding"
             ]
           }
         },
         "required": [
           "type"
         ],
         "additionalProperties": false
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "axis": {
     "type": "object",
     "properties": {
       "orient": {
         "oneOf": [
           {
             "enum": [
               "top",
               "bottom",
               "left",
               "right"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "scale": {
         "type": "string"
       },
       "format": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "type": "object",
             "properties": {
               "year": {
                 "type": "string"
               },
               "quarter": {
                 "type": "string"
               },
               "month": {
                 "type": "string"
               },
               "date": {
                 "type": "string"
               },
               "week": {
                 "type": "string"
               },
               "day": {
                 "type": "string"
               },
               "hours": {
                 "type": "string"
               },
               "minutes": {
                 "type": "string"
               },
               "seconds": {
                 "type": "string"
               },
               "milliseconds": {
                 "type": "string"
               }
             },
             "additionalProperties": false
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "formatType": {
         "oneOf": [
           {
             "enum": [
               "number",
               "time",
               "utc"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "minExtent": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "maxExtent": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "offset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "position": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "bandPosition": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "translate": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "values": {
         "$ref": "#/refs/arrayOrSignal"
       },
       "zindex": {
         "type": "number"
       },
       "aria": {
         "type": "boolean"
       },
       "description": {
         "type": "string"
       },
       "title": {
         "$ref": "#/refs/textOrSignal"
       },
       "titlePadding": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleAlign": {
         "oneOf": [
           {
             "enum": [
               "left",
               "right",
               "center"
             ]
           },
           {
             "$ref": "#/refs/alignValue"
           }
         ]
       },
       "titleAnchor": {
         "oneOf": [
           {
             "enum": [
               null,
               "start",
               "middle",
               "end"
             ]
           },
           {
             "$ref": "#/refs/anchorValue"
           }
         ]
       },
       "titleAngle": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleX": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleY": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleBaseline": {
         "oneOf": [
           {
             "enum": [
               "top",
               "middle",
               "bottom",
               "alphabetic",
               "line-top",
               "line-bottom"
             ]
           },
           {
             "$ref": "#/refs/baselineValue"
           }
         ]
       },
       "titleColor": {
         "oneOf": [
           {
             "type": "null"
           },
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/colorValue"
           }
         ]
       },
       "titleFont": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "titleFontSize": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleFontStyle": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "titleFontWeight": {
         "oneOf": [
           {
             "enum": [
               null,
               "normal",
               "bold",
               "lighter",
               "bolder",
               "100",
               "200",
               "300",
               "400",
               "500",
               "600",
               "700",
               "800",
               "900",
               100,
               200,
               300,
               400,
               500,
               600,
               700,
               800,
               900
             ]
           },
           {
             "$ref": "#/refs/fontWeightValue"
           }
         ]
       },
       "titleLimit": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleLineHeight": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "titleOpacity": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "domain": {
         "type": "boolean"
       },
       "domainCap": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "domainColor": {
         "oneOf": [
           {
             "type": "null"
           },
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/colorValue"
           }
         ]
       },
       "domainDash": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "type": "number"
             }
           },
           {
             "$ref": "#/refs/arrayValue"
           }
         ]
       },
       "domainDashOffset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "domainOpacity": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "domainWidth": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "ticks": {
         "type": "boolean"
       },
       "tickBand": {
         "$ref": "#/refs/tickBand"
       },
       "tickCap": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "tickColor": {
         "oneOf": [
           {
             "type": "null"
           },
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/colorValue"
           }
         ]
       },
       "tickDash": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "type": "number"
             }
           },
           {
             "$ref": "#/refs/arrayValue"
           }
         ]
       },
       "tickDashOffset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "tickOffset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "tickOpacity": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "tickRound": {
         "oneOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/booleanValue"
           }
         ]
       },
       "tickSize": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "tickWidth": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "tickCount": {
         "$ref": "#/refs/tickCount"
       },
       "tickExtra": {
         "$ref": "#/refs/booleanOrSignal"
       },
       "tickMinStep": {
         "$ref": "#/refs/numberOrSignal"
       },
       "grid": {
         "type": "boolean"
       },
       "gridScale": {
         "type": "string"
       },
       "gridCap": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "gridColor": {
         "oneOf": [
           {
             "type": "null"
           },
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/colorValue"
           }
         ]
       },
       "gridDash": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "type": "number"
             }
           },
           {
             "$ref": "#/refs/arrayValue"
           }
         ]
       },
       "gridDashOffset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "gridOpacity": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "gridWidth": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labels": {
         "type": "boolean"
       },
       "labelAlign": {
         "oneOf": [
           {
             "enum": [
               "left",
               "right",
               "center"
             ]
           },
           {
             "$ref": "#/refs/alignValue"
           }
         ]
       },
       "labelBaseline": {
         "oneOf": [
           {
             "enum": [
               "top",
               "middle",
               "bottom",
               "alphabetic",
               "line-top",
               "line-bottom"
             ]
           },
           {
             "$ref": "#/refs/baselineValue"
           }
         ]
       },
       "labelBound": {
         "oneOf": [
           {
             "type": "boolean"
           },
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "labelFlush": {
         "oneOf": [
           {
             "type": "boolean"
           },
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "labelFlushOffset": {
         "$ref": "#/refs/numberOrSignal"
       },
       "labelOverlap": {
         "$ref": "#/refs/labelOverlap"
       },
       "labelAngle": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelColor": {
         "oneOf": [
           {
             "type": "null"
           },
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/colorValue"
           }
         ]
       },
       "labelFont": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "labelFontSize": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelFontWeight": {
         "oneOf": [
           {
             "enum": [
               null,
               "normal",
               "bold",
               "lighter",
               "bolder",
               "100",
               "200",
               "300",
               "400",
               "500",
               "600",
               "700",
               "800",
               "900",
               100,
               200,
               300,
               400,
               500,
               600,
               700,
               800,
               900
             ]
           },
           {
             "$ref": "#/refs/fontWeightValue"
           }
         ]
       },
       "labelFontStyle": {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/stringValue"
           }
         ]
       },
       "labelLimit": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelLineHeight": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelOpacity": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelOffset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelPadding": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "labelSeparation": {
         "$ref": "#/refs/numberOrSignal"
       },
       "encode": {
         "type": "object",
         "properties": {
           "axis": {
             "$ref": "#/defs/guideEncode"
           },
           "ticks": {
             "$ref": "#/defs/guideEncode"
           },
           "labels": {
             "$ref": "#/defs/guideEncode"
           },
           "title": {
             "$ref": "#/defs/guideEncode"
           },
           "grid": {
             "$ref": "#/defs/guideEncode"
           },
           "domain": {
             "$ref": "#/defs/guideEncode"
           }
         },
         "additionalProperties": false
       }
     },
     "required": [
       "orient",
       "scale"
     ],
     "additionalProperties": false
   },
   "background": {
     "$ref": "#/refs/stringOrSignal"
   },
   "bind": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "input": {
             "enum": [
               "checkbox"
             ]
           },
           "element": {
             "$ref": "#/refs/element"
           },
           "debounce": {
             "type": "number"
           },
           "name": {
             "type": "string"
           }
         },
         "required": [
           "input"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "input": {
             "enum": [
               "radio",
               "select"
             ]
           },
           "element": {
             "$ref": "#/refs/element"
           },
           "options": {
             "type": "array"
           },
           "labels": {
             "type": "array",
             "items": {
               "type": "string"
             }
           },
           "debounce": {
             "type": "number"
           },
           "name": {
             "type": "string"
           }
         },
         "required": [
           "input",
           "options"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "input": {
             "enum": [
               "range"
             ]
           },
           "element": {
             "$ref": "#/refs/element"
           },
           "min": {
             "type": "number"
           },
           "max": {
             "type": "number"
           },
           "step": {
             "type": "number"
           },
           "debounce": {
             "type": "number"
           },
           "name": {
             "type": "string"
           }
         },
         "required": [
           "input"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "input": {
             "not": {
               "enum": [
                 "checkbox",
                 "radio",
                 "range",
                 "select"
               ]
             }
           },
           "element": {
             "$ref": "#/refs/element"
           },
           "debounce": {
             "type": "number"
           },
           "name": {
             "type": "string"
           }
         },
         "required": [
           "input"
         ],
         "additionalProperties": true
       }
     ]
   },
   "data": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "name": {
             "type": "string"
           },
           "transform": {
             "type": "array",
             "items": {
               "$ref": "#/defs/transform"
             }
           },
           "on": {
             "$ref": "#/defs/onTrigger"
           }
         },
         "required": [
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "source": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "type": "array",
                 "items": {
                   "type": "string"
                 },
                 "minItems": 1
               }
             ]
           },
           "name": {
             "type": "string"
           },
           "transform": {
             "type": "array",
             "items": {
               "$ref": "#/defs/transform"
             }
           },
           "on": {
             "$ref": "#/defs/onTrigger"
           }
         },
         "required": [
           "source",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "url": {
             "$ref": "#/refs/stringOrSignal"
           },
           "format": {
             "oneOf": [
               {
                 "anyOf": [
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "$ref": "#/refs/stringOrSignal"
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       }
                     }
                   },
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "enum": [
                           "json"
                         ]
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       },
                       "property": {
                         "$ref": "#/refs/stringOrSignal"
                       },
                       "copy": {
                         "$ref": "#/refs/booleanOrSignal"
                       }
                     },
                     "additionalProperties": false
                   },
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "enum": [
                           "csv",
                           "tsv"
                         ]
                       },
                       "header": {
                         "type": "array",
                         "items": {
                           "type": "string"
                         }
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       }
                     },
                     "required": [
                       "type"
                     ],
                     "additionalProperties": false
                   },
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "enum": [
                           "dsv"
                         ]
                       },
                       "delimiter": {
                         "type": "string"
                       },
                       "header": {
                         "type": "array",
                         "items": {
                           "type": "string"
                         }
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       }
                     },
                     "required": [
                       "type",
                       "delimiter"
                     ],
                     "additionalProperties": false
                   },
                   {
                     "oneOf": [
                       {
                         "type": "object",
                         "properties": {
                           "type": {
                             "enum": [
                               "topojson"
                             ]
                           },
                           "feature": {
                             "$ref": "#/refs/stringOrSignal"
                           },
                           "property": {
                             "$ref": "#/refs/stringOrSignal"
                           }
                         },
                         "required": [
                           "type",
                           "feature"
                         ],
                         "additionalProperties": false
                       },
                       {
                         "type": "object",
                         "properties": {
                           "type": {
                             "enum": [
                               "topojson"
                             ]
                           },
                           "mesh": {
                             "$ref": "#/refs/stringOrSignal"
                           },
                           "property": {
                             "$ref": "#/refs/stringOrSignal"
                           },
                           "filter": {
                             "enum": [
                               "interior",
                               "exterior",
                               null
                             ]
                           }
                         },
                         "required": [
                           "type",
                           "mesh"
                         ],
                         "additionalProperties": false
                       }
                     ]
                   }
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "async": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "name": {
             "type": "string"
           },
           "transform": {
             "type": "array",
             "items": {
               "$ref": "#/defs/transform"
             }
           },
           "on": {
             "$ref": "#/defs/onTrigger"
           }
         },
         "required": [
           "url",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "values": {
             "oneOf": [
               {},
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "format": {
             "oneOf": [
               {
                 "anyOf": [
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "$ref": "#/refs/stringOrSignal"
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       }
                     }
                   },
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "enum": [
                           "json"
                         ]
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       },
                       "property": {
                         "$ref": "#/refs/stringOrSignal"
                       },
                       "copy": {
                         "$ref": "#/refs/booleanOrSignal"
                       }
                     },
                     "additionalProperties": false
                   },
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "enum": [
                           "csv",
                           "tsv"
                         ]
                       },
                       "header": {
                         "type": "array",
                         "items": {
                           "type": "string"
                         }
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       }
                     },
                     "required": [
                       "type"
                     ],
                     "additionalProperties": false
                   },
                   {
                     "type": "object",
                     "properties": {
                       "type": {
                         "enum": [
                           "dsv"
                         ]
                       },
                       "delimiter": {
                         "type": "string"
                       },
                       "header": {
                         "type": "array",
                         "items": {
                           "type": "string"
                         }
                       },
                       "parse": {
                         "oneOf": [
                           {
                             "enum": [
                               "auto"
                             ]
                           },
                           {
                             "type": "object",
                             "properties": {},
                             "additionalProperties": {
                               "oneOf": [
                                 {
                                   "enum": [
                                     "boolean",
                                     "number",
                                     "date",
                                     "string"
                                   ]
                                 },
                                 {
                                   "type": "string",
                                   "pattern": "^(date|utc):.*$"
                                 }
                               ]
                             }
                           },
                           {
                             "$ref": "#/refs/signal"
                           }
                         ]
                       }
                     },
                     "required": [
                       "type",
                       "delimiter"
                     ],
                     "additionalProperties": false
                   },
                   {
                     "oneOf": [
                       {
                         "type": "object",
                         "properties": {
                           "type": {
                             "enum": [
                               "topojson"
                             ]
                           },
                           "feature": {
                             "$ref": "#/refs/stringOrSignal"
                           },
                           "property": {
                             "$ref": "#/refs/stringOrSignal"
                           }
                         },
                         "required": [
                           "type",
                           "feature"
                         ],
                         "additionalProperties": false
                       },
                       {
                         "type": "object",
                         "properties": {
                           "type": {
                             "enum": [
                               "topojson"
                             ]
                           },
                           "mesh": {
                             "$ref": "#/refs/stringOrSignal"
                           },
                           "property": {
                             "$ref": "#/refs/stringOrSignal"
                           },
                           "filter": {
                             "enum": [
                               "interior",
                               "exterior",
                               null
                             ]
                           }
                         },
                         "required": [
                           "type",
                           "mesh"
                         ],
                         "additionalProperties": false
                       }
                     ]
                   }
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "async": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "name": {
             "type": "string"
           },
           "transform": {
             "type": "array",
             "items": {
               "$ref": "#/defs/transform"
             }
           },
           "on": {
             "$ref": "#/defs/onTrigger"
           }
         },
         "required": [
           "values",
           "name"
         ],
         "additionalProperties": false
       }
     ]
   },
   "rule": {
     "type": "object",
     "properties": {
       "test": {
         "type": "string"
       }
     }
   },
   "encodeEntry": {
     "type": "object",
     "properties": {
       "x": {
         "$ref": "#/refs/numberValue"
       },
       "x2": {
         "$ref": "#/refs/numberValue"
       },
       "xc": {
         "$ref": "#/refs/numberValue"
       },
       "width": {
         "$ref": "#/refs/numberValue"
       },
       "y": {
         "$ref": "#/refs/numberValue"
       },
       "y2": {
         "$ref": "#/refs/numberValue"
       },
       "yc": {
         "$ref": "#/refs/numberValue"
       },
       "height": {
         "$ref": "#/refs/numberValue"
       },
       "opacity": {
         "$ref": "#/refs/numberValue"
       },
       "fill": {
         "$ref": "#/refs/colorValue"
       },
       "fillOpacity": {
         "$ref": "#/refs/numberValue"
       },
       "stroke": {
         "$ref": "#/refs/colorValue"
       },
       "strokeOpacity": {
         "$ref": "#/refs/numberValue"
       },
       "strokeWidth": {
         "$ref": "#/refs/numberValue"
       },
       "strokeCap": {
         "$ref": "#/refs/strokeCapValue"
       },
       "strokeDash": {
         "$ref": "#/refs/arrayValue"
       },
       "strokeDashOffset": {
         "$ref": "#/refs/numberValue"
       },
       "strokeJoin": {
         "$ref": "#/refs/strokeJoinValue"
       },
       "strokeMiterLimit": {
         "$ref": "#/refs/numberValue"
       },
       "blend": {
         "$ref": "#/refs/blendValue"
       },
       "cursor": {
         "$ref": "#/refs/stringValue"
       },
       "tooltip": {
         "$ref": "#/refs/anyValue"
       },
       "zindex": {
         "$ref": "#/refs/numberValue"
       },
       "description": {
         "$ref": "#/refs/stringValue"
       },
       "aria": {
         "$ref": "#/refs/booleanValue"
       },
       "ariaRole": {
         "$ref": "#/refs/stringValue"
       },
       "ariaRoleDescription": {
         "$ref": "#/refs/stringValue"
       },
       "clip": {
         "$ref": "#/refs/booleanValue"
       },
       "strokeForeground": {
         "$ref": "#/refs/booleanValue"
       },
       "strokeOffset": {
         "$ref": "#/refs/numberValue"
       },
       "cornerRadius": {
         "$ref": "#/refs/numberValue"
       },
       "cornerRadiusTopLeft": {
         "$ref": "#/refs/numberValue"
       },
       "cornerRadiusTopRight": {
         "$ref": "#/refs/numberValue"
       },
       "cornerRadiusBottomRight": {
         "$ref": "#/refs/numberValue"
       },
       "cornerRadiusBottomLeft": {
         "$ref": "#/refs/numberValue"
       },
       "angle": {
         "$ref": "#/refs/numberValue"
       },
       "size": {
         "$ref": "#/refs/numberValue"
       },
       "shape": {
         "$ref": "#/refs/stringValue"
       },
       "path": {
         "$ref": "#/refs/stringValue"
       },
       "scaleX": {
         "$ref": "#/refs/numberValue"
       },
       "scaleY": {
         "$ref": "#/refs/numberValue"
       },
       "innerRadius": {
         "$ref": "#/refs/numberValue"
       },
       "outerRadius": {
         "$ref": "#/refs/numberValue"
       },
       "startAngle": {
         "$ref": "#/refs/numberValue"
       },
       "endAngle": {
         "$ref": "#/refs/numberValue"
       },
       "padAngle": {
         "$ref": "#/refs/numberValue"
       },
       "interpolate": {
         "$ref": "#/refs/stringValue"
       },
       "tension": {
         "$ref": "#/refs/numberValue"
       },
       "orient": {
         "$ref": "#/refs/directionValue"
       },
       "defined": {
         "$ref": "#/refs/booleanValue"
       },
       "url": {
         "$ref": "#/refs/stringValue"
       },
       "align": {
         "$ref": "#/refs/alignValue"
       },
       "baseline": {
         "$ref": "#/refs/baselineValue"
       },
       "aspect": {
         "$ref": "#/refs/booleanValue"
       },
       "smooth": {
         "$ref": "#/refs/booleanValue"
       },
       "text": {
         "$ref": "#/refs/textValue"
       },
       "dir": {
         "$ref": "#/refs/stringValue"
       },
       "ellipsis": {
         "$ref": "#/refs/stringValue"
       },
       "limit": {
         "$ref": "#/refs/numberValue"
       },
       "lineBreak": {
         "$ref": "#/refs/stringValue"
       },
       "lineHeight": {
         "$ref": "#/refs/numberValue"
       },
       "dx": {
         "$ref": "#/refs/numberValue"
       },
       "dy": {
         "$ref": "#/refs/numberValue"
       },
       "radius": {
         "$ref": "#/refs/numberValue"
       },
       "theta": {
         "$ref": "#/refs/numberValue"
       },
       "font": {
         "$ref": "#/refs/stringValue"
       },
       "fontSize": {
         "$ref": "#/refs/numberValue"
       },
       "fontWeight": {
         "$ref": "#/refs/fontWeightValue"
       },
       "fontStyle": {
         "$ref": "#/refs/stringValue"
       }
     },
     "additionalProperties": true
   },
   "encode": {
     "type": "object",
     "additionalProperties": false,
     "patternProperties": {
       "^.+$": {
         "$ref": "#/defs/encodeEntry"
       }
     }
   },
   "layout": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "align": {
             "oneOf": [
               {
                 "oneOf": [
                   {
                     "enum": [
                       "all",
                       "each",
                       "none"
                     ]
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "oneOf": [
                       {
                         "enum": [
                           "all",
                           "each",
                           "none"
                         ]
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "column": {
                     "oneOf": [
                       {
                         "enum": [
                           "all",
                           "each",
                           "none"
                         ]
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "bounds": {
             "oneOf": [
               {
                 "enum": [
                   "full",
                   "flush"
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "center": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "$ref": "#/refs/signal"
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "$ref": "#/refs/booleanOrSignal"
                   },
                   "column": {
                     "$ref": "#/refs/booleanOrSignal"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "columns": {
             "$ref": "#/refs/numberOrSignal"
           },
           "padding": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "column": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "offset": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               },
               {
                 "type": "object",
                 "properties": {
                   "rowHeader": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "rowFooter": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "rowTitle": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "columnHeader": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "columnFooter": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "columnTitle": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "headerBand": {
             "oneOf": [
               {
                 "$ref": "#/refs/numberOrSignal"
               },
               {
                 "type": "null"
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "column": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "footerBand": {
             "oneOf": [
               {
                 "$ref": "#/refs/numberOrSignal"
               },
               {
                 "type": "null"
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "column": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "titleBand": {
             "oneOf": [
               {
                 "$ref": "#/refs/numberOrSignal"
               },
               {
                 "type": "null"
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "column": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "titleAnchor": {
             "oneOf": [
               {
                 "oneOf": [
                   {
                     "enum": [
                       "start",
                       "end"
                     ]
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               },
               {
                 "type": "object",
                 "properties": {
                   "row": {
                     "oneOf": [
                       {
                         "enum": [
                           "start",
                           "end"
                         ]
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "column": {
                     "oneOf": [
                       {
                         "enum": [
                           "start",
                           "end"
                         ]
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "additionalProperties": false
               }
             ]
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "guideEncode": {
     "type": "object",
     "properties": {
       "name": {
         "type": "string"
       },
       "interactive": {
         "type": "boolean",
         "default": false
       },
       "style": {
         "$ref": "#/refs/style"
       }
     },
     "additionalProperties": false,
     "patternProperties": {
       "^(?!interactive|name|style).+$": {
         "$ref": "#/defs/encodeEntry"
       }
     }
   },
   "legend": {
     "allOf": [
       {
         "type": "object",
         "properties": {
           "size": {
             "type": "string"
           },
           "shape": {
             "type": "string"
           },
           "fill": {
             "type": "string"
           },
           "stroke": {
             "type": "string"
           },
           "opacity": {
             "type": "string"
           },
           "strokeDash": {
             "type": "string"
           },
           "strokeWidth": {
             "type": "string"
           },
           "type": {
             "enum": [
               "gradient",
               "symbol"
             ]
           },
           "direction": {
             "enum": [
               "vertical",
               "horizontal"
             ]
           },
           "orient": {
             "oneOf": [
               {
                 "enum": [
                   "none",
                   "left",
                   "right",
                   "top",
                   "bottom",
                   "top-left",
                   "top-right",
                   "bottom-left",
                   "bottom-right"
                 ],
                 "default": "right"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "tickCount": {
             "$ref": "#/refs/tickCount"
           },
           "tickMinStep": {
             "$ref": "#/refs/numberOrSignal"
           },
           "symbolLimit": {
             "$ref": "#/refs/numberOrSignal"
           },
           "values": {
             "$ref": "#/refs/arrayOrSignal"
           },
           "zindex": {
             "type": "number"
           },
           "aria": {
             "type": "boolean"
           },
           "description": {
             "type": "string"
           },
           "cornerRadius": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "fillColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "offset": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "padding": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "strokeColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "legendX": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "legendY": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "title": {
             "$ref": "#/refs/textOrSignal"
           },
           "titleAlign": {
             "oneOf": [
               {
                 "enum": [
                   "left",
                   "right",
                   "center"
                 ]
               },
               {
                 "$ref": "#/refs/alignValue"
               }
             ]
           },
           "titleAnchor": {
             "oneOf": [
               {
                 "enum": [
                   null,
                   "start",
                   "middle",
                   "end"
                 ]
               },
               {
                 "$ref": "#/refs/anchorValue"
               }
             ]
           },
           "titleBaseline": {
             "oneOf": [
               {
                 "enum": [
                   "top",
                   "middle",
                   "bottom",
                   "alphabetic",
                   "line-top",
                   "line-bottom"
                 ]
               },
               {
                 "$ref": "#/refs/baselineValue"
               }
             ]
           },
           "titleColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "titleFont": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "titleFontSize": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "titleFontStyle": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "titleFontWeight": {
             "oneOf": [
               {
                 "enum": [
                   null,
                   "normal",
                   "bold",
                   "lighter",
                   "bolder",
                   "100",
                   "200",
                   "300",
                   "400",
                   "500",
                   "600",
                   "700",
                   "800",
                   "900",
                   100,
                   200,
                   300,
                   400,
                   500,
                   600,
                   700,
                   800,
                   900
                 ]
               },
               {
                 "$ref": "#/refs/fontWeightValue"
               }
             ]
           },
           "titleLimit": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "titleLineHeight": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "titleOpacity": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "titleOrient": {
             "oneOf": [
               {
                 "enum": [
                   "left",
                   "right",
                   "top",
                   "bottom"
                 ]
               },
               {
                 "$ref": "#/refs/orientValue"
               }
             ]
           },
           "titlePadding": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "gradientLength": {
             "$ref": "#/refs/numberOrSignal"
           },
           "gradientOpacity": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "gradientStrokeColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "gradientStrokeWidth": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "gradientThickness": {
             "$ref": "#/refs/numberOrSignal"
           },
           "clipHeight": {
             "$ref": "#/refs/numberOrSignal"
           },
           "columns": {
             "$ref": "#/refs/numberOrSignal"
           },
           "columnPadding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "rowPadding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "gridAlign": {
             "oneOf": [
               {
                 "enum": [
                   "all",
                   "each",
                   "none"
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "symbolDash": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "type": "number"
                 }
               },
               {
                 "$ref": "#/refs/arrayValue"
               }
             ]
           },
           "symbolDashOffset": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "symbolFillColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "symbolOffset": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "symbolOpacity": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "symbolSize": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "symbolStrokeColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "symbolStrokeWidth": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "symbolType": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "format": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "type": "object",
                 "properties": {
                   "year": {
                     "type": "string"
                   },
                   "quarter": {
                     "type": "string"
                   },
                   "month": {
                     "type": "string"
                   },
                   "date": {
                     "type": "string"
                   },
                   "week": {
                     "type": "string"
                   },
                   "day": {
                     "type": "string"
                   },
                   "hours": {
                     "type": "string"
                   },
                   "minutes": {
                     "type": "string"
                   },
                   "seconds": {
                     "type": "string"
                   },
                   "milliseconds": {
                     "type": "string"
                   }
                 },
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "formatType": {
             "oneOf": [
               {
                 "enum": [
                   "number",
                   "time",
                   "utc"
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "labelAlign": {
             "oneOf": [
               {
                 "enum": [
                   "left",
                   "right",
                   "center"
                 ]
               },
               {
                 "$ref": "#/refs/alignValue"
               }
             ]
           },
           "labelBaseline": {
             "oneOf": [
               {
                 "enum": [
                   "top",
                   "middle",
                   "bottom",
                   "alphabetic",
                   "line-top",
                   "line-bottom"
                 ]
               },
               {
                 "$ref": "#/refs/baselineValue"
               }
             ]
           },
           "labelColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "labelFont": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "labelFontSize": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "labelFontStyle": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "labelFontWeight": {
             "oneOf": [
               {
                 "enum": [
                   null,
                   "normal",
                   "bold",
                   "lighter",
                   "bolder",
                   "100",
                   "200",
                   "300",
                   "400",
                   "500",
                   "600",
                   "700",
                   "800",
                   "900",
                   100,
                   200,
                   300,
                   400,
                   500,
                   600,
                   700,
                   800,
                   900
                 ]
               },
               {
                 "$ref": "#/refs/fontWeightValue"
               }
             ]
           },
           "labelLimit": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "labelOffset": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "labelOpacity": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "labelOverlap": {
             "$ref": "#/refs/labelOverlap"
           },
           "labelSeparation": {
             "$ref": "#/refs/numberOrSignal"
           },
           "encode": {
             "type": "object",
             "properties": {
               "title": {
                 "$ref": "#/defs/guideEncode"
               },
               "labels": {
                 "$ref": "#/defs/guideEncode"
               },
               "legend": {
                 "$ref": "#/defs/guideEncode"
               },
               "entries": {
                 "$ref": "#/defs/guideEncode"
               },
               "symbols": {
                 "$ref": "#/defs/guideEncode"
               },
               "gradient": {
                 "$ref": "#/defs/guideEncode"
               }
             },
             "additionalProperties": false
           }
         },
         "additionalProperties": false
       },
       {
         "anyOf": [
           {
             "type": "object",
             "required": [
               "size"
             ]
           },
           {
             "type": "object",
             "required": [
               "shape"
             ]
           },
           {
             "type": "object",
             "required": [
               "fill"
             ]
           },
           {
             "type": "object",
             "required": [
               "stroke"
             ]
           },
           {
             "type": "object",
             "required": [
               "opacity"
             ]
           },
           {
             "type": "object",
             "required": [
               "strokeDash"
             ]
           },
           {
             "type": "object",
             "required": [
               "strokeWidth"
             ]
           }
         ]
       }
     ]
   },
   "mark": {
     "type": "object",
     "properties": {
       "type": {
         "$ref": "#/refs/marktype"
       },
       "role": {
         "type": "string"
       },
       "name": {
         "type": "string"
       },
       "description": {
         "type": "string"
       },
       "aria": {
         "type": "boolean"
       },
       "style": {
         "$ref": "#/refs/style"
       },
       "key": {
         "type": "string"
       },
       "clip": {
         "$ref": "#/refs/markclip"
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "interactive": {
         "$ref": "#/refs/booleanOrSignal"
       },
       "encode": {
         "$ref": "#/defs/encode"
       },
       "transform": {
         "type": "array",
         "items": {
           "$ref": "#/defs/transformMark"
         }
       },
       "on": {
         "$ref": "#/defs/onMarkTrigger"
       }
     },
     "required": [
       "type"
     ]
   },
   "markGroup": {
     "allOf": [
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "group"
             ]
           },
           "from": {
             "oneOf": [
               {
                 "$ref": "#/refs/from"
               },
               {
                 "$ref": "#/refs/facet"
               }
             ]
           }
         },
         "required": [
           "type"
         ]
       },
       {
         "$ref": "#/defs/mark"
       },
       {
         "$ref": "#/defs/scope"
       }
     ]
   },
   "markVisual": {
     "allOf": [
       {
         "type": "object",
         "properties": {
           "type": {
             "not": {
               "enum": [
                 "group"
               ]
             }
           },
           "from": {
             "$ref": "#/refs/from"
           }
         }
       },
       {
         "$ref": "#/defs/mark"
       }
     ]
   },
   "listener": {
     "oneOf": [
       {
         "$ref": "#/refs/signal"
       },
       {
         "type": "object",
         "properties": {
           "scale": {
             "type": "string"
           }
         },
         "required": [
           "scale"
         ]
       },
       {
         "$ref": "#/defs/stream"
       }
     ]
   },
   "onEvents": {
     "type": "array",
     "items": {
       "allOf": [
         {
           "type": "object",
           "properties": {
             "events": {
               "oneOf": [
                 {
                   "$ref": "#/refs/selector"
                 },
                 {
                   "$ref": "#/defs/listener"
                 },
                 {
                   "type": "array",
                   "items": {
                     "$ref": "#/defs/listener"
                   },
                   "minItems": 1
                 }
               ]
             },
             "force": {
               "type": "boolean"
             }
           },
           "required": [
             "events"
           ]
         },
         {
           "oneOf": [
             {
               "type": "object",
               "properties": {
                 "encode": {
                   "type": "string"
                 }
               },
               "required": [
                 "encode"
               ]
             },
             {
               "type": "object",
               "properties": {
                 "update": {
                   "oneOf": [
                     {
                       "$ref": "#/refs/exprString"
                     },
                     {
                       "$ref": "#/refs/expr"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "object",
                       "properties": {
                         "value": {}
                       },
                       "required": [
                         "value"
                       ]
                     }
                   ]
                 }
               },
               "required": [
                 "update"
               ]
             }
           ]
         }
       ]
     }
   },
   "onTrigger": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "trigger": {
           "$ref": "#/refs/exprString"
         },
         "insert": {
           "$ref": "#/refs/exprString"
         },
         "remove": {
           "oneOf": [
             {
               "type": "boolean"
             },
             {
               "$ref": "#/refs/exprString"
             }
           ]
         },
         "toggle": {
           "$ref": "#/refs/exprString"
         },
         "modify": {
           "$ref": "#/refs/exprString"
         },
         "values": {
           "$ref": "#/refs/exprString"
         }
       },
       "required": [
         "trigger"
       ],
       "additionalProperties": false
     }
   },
   "onMarkTrigger": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "trigger": {
           "$ref": "#/refs/exprString"
         },
         "modify": {
           "$ref": "#/refs/exprString"
         },
         "values": {
           "$ref": "#/refs/exprString"
         }
       },
       "required": [
         "trigger"
       ],
       "additionalProperties": false
     }
   },
   "padding": {
     "oneOf": [
       {
         "type": "number"
       },
       {
         "type": "object",
         "properties": {
           "top": {
             "type": "number"
           },
           "bottom": {
             "type": "number"
           },
           "left": {
             "type": "number"
           },
           "right": {
             "type": "number"
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "projection": {
     "type": "object",
     "properties": {
       "name": {
         "type": "string"
       },
       "type": {
         "$ref": "#/refs/stringOrSignal"
       },
       "clipAngle": {
         "$ref": "#/refs/numberOrSignal"
       },
       "clipExtent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "type": "array",
                   "items": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "minItems": 2,
                   "maxItems": 2
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             },
             "minItems": 2,
             "maxItems": 2
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "scale": {
         "$ref": "#/refs/numberOrSignal"
       },
       "translate": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/refs/numberOrSignal"
             },
             "minItems": 2,
             "maxItems": 2
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "center": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/refs/numberOrSignal"
             },
             "minItems": 2,
             "maxItems": 2
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "rotate": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/refs/numberOrSignal"
             },
             "minItems": 2,
             "maxItems": 3
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "parallels": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/refs/numberOrSignal"
             },
             "minItems": 2,
             "maxItems": 2
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "precision": {
         "$ref": "#/refs/numberOrSignal"
       },
       "pointRadius": {
         "$ref": "#/refs/numberOrSignal"
       },
       "fit": {
         "oneOf": [
           {
             "type": "object"
           },
           {
             "type": "array"
           }
         ]
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "type": "array",
                   "items": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "minItems": 2,
                   "maxItems": 2
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             },
             "minItems": 2,
             "maxItems": 2
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "$ref": "#/refs/numberOrSignal"
             },
             "minItems": 2,
             "maxItems": 2
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "name"
     ],
     "additionalProperties": true
   },
   "scale": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "identity"
             ]
           },
           "nice": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "ordinal"
             ]
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "oneOf": [
                   {
                     "type": "object",
                     "properties": {
                       "data": {
                         "type": "string"
                       },
                       "field": {
                         "$ref": "#/refs/stringOrSignal"
                       },
                       "sort": {
                         "oneOf": [
                           {
                             "type": "boolean"
                           },
                           {
                             "type": "object",
                             "properties": {
                               "field": {
                                 "$ref": "#/refs/stringOrSignal"
                               },
                               "op": {
                                 "$ref": "#/refs/stringOrSignal"
                               },
                               "order": {
                                 "$ref": "#/refs/sortOrder"
                               }
                             },
                             "additionalProperties": false
                           }
                         ]
                       }
                     },
                     "required": [
                       "data",
                       "field"
                     ],
                     "additionalProperties": false
                   },
                   {
                     "type": "object",
                     "properties": {
                       "data": {
                         "type": "string"
                       },
                       "fields": {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/stringOrSignal"
                         },
                         "minItems": 1
                       },
                       "sort": {
                         "oneOf": [
                           {
                             "type": "boolean"
                           },
                           {
                             "type": "object",
                             "properties": {
                               "op": {
                                 "enum": [
                                   "count"
                                 ]
                               },
                               "order": {
                                 "$ref": "#/refs/sortOrder"
                               }
                             },
                             "additionalProperties": false
                           },
                           {
                             "type": "object",
                             "properties": {
                               "field": {
                                 "$ref": "#/refs/stringOrSignal"
                               },
                               "op": {
                                 "enum": [
                                   "count",
                                   "min",
                                   "max"
                                 ]
                               },
                               "order": {
                                 "$ref": "#/refs/sortOrder"
                               }
                             },
                             "required": [
                               "field",
                               "op"
                             ],
                             "additionalProperties": false
                           }
                         ]
                       }
                     },
                     "required": [
                       "data",
                       "fields"
                     ],
                     "additionalProperties": false
                   },
                   {
                     "type": "object",
                     "properties": {
                       "fields": {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "object",
                               "properties": {
                                 "data": {
                                   "type": "string"
                                 },
                                 "field": {
                                   "$ref": "#/refs/stringOrSignal"
                                 }
                               },
                               "required": [
                                 "data",
                                 "field"
                               ],
                               "additionalProperties": false
                             },
                             {
                               "type": "array",
                               "items": {
                                 "oneOf": [
                                   {
                                     "type": "string"
                                   },
                                   {
                                     "type": "number"
                                   },
                                   {
                                     "type": "boolean"
                                   }
                                 ]
                               }
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         },
                         "minItems": 1
                       },
                       "sort": {
                         "oneOf": [
                           {
                             "type": "boolean"
                           },
                           {
                             "type": "object",
                             "properties": {
                               "op": {
                                 "enum": [
                                   "count"
                                 ]
                               },
                               "order": {
                                 "$ref": "#/refs/sortOrder"
                               }
                             },
                             "additionalProperties": false
                           },
                           {
                             "type": "object",
                             "properties": {
                               "field": {
                                 "$ref": "#/refs/stringOrSignal"
                               },
                               "op": {
                                 "enum": [
                                   "count",
                                   "min",
                                   "max"
                                 ]
                               },
                               "order": {
                                 "$ref": "#/refs/sortOrder"
                               }
                             },
                             "required": [
                               "field",
                               "op"
                             ],
                             "additionalProperties": false
                           }
                         ]
                       }
                     },
                     "required": [
                       "fields"
                     ],
                     "additionalProperties": false
                   }
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "domainImplicit": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "band"
             ]
           },
           "paddingInner": {
             "$ref": "#/refs/numberOrSignal"
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "step": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "required": [
                   "step"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "paddingOuter": {
             "$ref": "#/refs/numberOrSignal"
           },
           "align": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "point"
             ]
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "step": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "required": [
                   "step"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "paddingOuter": {
             "$ref": "#/refs/numberOrSignal"
           },
           "align": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "quantize",
               "threshold"
             ]
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "nice": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "zero": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "quantile"
             ]
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "bin-ordinal"
             ]
           },
           "bins": {
             "$ref": "#/refs/scaleBins"
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "time",
               "utc"
             ]
           },
           "nice": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "enum": [
                   "millisecond",
                   "second",
                   "minute",
                   "hour",
                   "day",
                   "week",
                   "month",
                   "year"
                 ]
               },
               {
                 "type": "object",
                 "properties": {
                   "interval": {
                     "oneOf": [
                       {
                         "enum": [
                           "millisecond",
                           "second",
                           "minute",
                           "hour",
                           "day",
                           "week",
                           "month",
                           "year"
                         ]
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "step": {
                     "$ref": "#/refs/numberOrSignal"
                   }
                 },
                 "required": [
                   "interval"
                 ],
                 "additionalProperties": false
               }
             ]
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "bins": {
             "$ref": "#/refs/scaleBins"
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "clamp": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "linear",
               "sqrt",
               "sequential"
             ]
           },
           "nice": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "zero": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "bins": {
             "$ref": "#/refs/scaleBins"
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "clamp": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "log"
             ]
           },
           "base": {
             "$ref": "#/refs/numberOrSignal"
           },
           "nice": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "zero": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "bins": {
             "$ref": "#/refs/scaleBins"
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "clamp": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "pow"
             ]
           },
           "exponent": {
             "$ref": "#/refs/numberOrSignal"
           },
           "nice": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "zero": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "bins": {
             "$ref": "#/refs/scaleBins"
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "clamp": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "enum": [
               "symlog"
             ]
           },
           "constant": {
             "$ref": "#/refs/numberOrSignal"
           },
           "nice": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "zero": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "range": {
             "oneOf": [
               {
                 "enum": [
                   "width",
                   "height",
                   "symbol",
                   "category",
                   "ordinal",
                   "ramp",
                   "diverging",
                   "heatmap"
                 ]
               },
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "scheme": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "array",
                         "items": {
                           "oneOf": [
                             {
                               "type": "string"
                             },
                             {
                               "$ref": "#/refs/signal"
                             }
                           ]
                         }
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   },
                   "count": {
                     "$ref": "#/refs/numberOrSignal"
                   },
                   "extent": {
                     "oneOf": [
                       {
                         "type": "array",
                         "items": {
                           "$ref": "#/refs/numberOrSignal"
                         },
                         "numItems": 2
                       },
                       {
                         "$ref": "#/refs/signal"
                       }
                     ]
                   }
                 },
                 "required": [
                   "scheme"
                 ],
                 "additionalProperties": false
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "bins": {
             "$ref": "#/refs/scaleBins"
           },
           "interpolate": {
             "$ref": "#/refs/scaleInterpolate"
           },
           "clamp": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "padding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "name": {
             "type": "string"
           },
           "domain": {
             "oneOf": [
               {
                 "type": "array",
                 "items": {
                   "oneOf": [
                     {
                       "type": "null"
                     },
                     {
                       "type": "boolean"
                     },
                     {
                       "type": "string"
                     },
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "type": "array",
                       "items": {
                         "$ref": "#/refs/numberOrSignal"
                       }
                     }
                   ]
                 }
               },
               {
                 "$ref": "#/refs/scaleData"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "domainMin": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMax": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainMid": {
             "$ref": "#/refs/numberOrSignal"
           },
           "domainRaw": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "array"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "reverse": {
             "$ref": "#/refs/booleanOrSignal"
           },
           "round": {
             "$ref": "#/refs/booleanOrSignal"
           }
         },
         "required": [
           "type",
           "name"
         ],
         "additionalProperties": false
       }
     ]
   },
   "scope": {
     "type": "object",
     "properties": {
       "encode": {
         "$ref": "#/defs/encode"
       },
       "layout": {
         "$ref": "#/defs/layout"
       },
       "signals": {
         "type": "array",
         "items": {
           "$ref": "#/defs/signal"
         }
       },
       "data": {
         "type": "array",
         "items": {
           "$ref": "#/defs/data"
         }
       },
       "scales": {
         "type": "array",
         "items": {
           "$ref": "#/defs/scale"
         }
       },
       "projections": {
         "type": "array",
         "items": {
           "$ref": "#/defs/projection"
         }
       },
       "axes": {
         "type": "array",
         "items": {
           "$ref": "#/defs/axis"
         }
       },
       "legends": {
         "type": "array",
         "items": {
           "$ref": "#/defs/legend"
         }
       },
       "title": {
         "$ref": "#/defs/title"
       },
       "marks": {
         "type": "array",
         "items": {
           "oneOf": [
             {
               "$ref": "#/defs/markGroup"
             },
             {
               "$ref": "#/defs/markVisual"
             }
           ]
         }
       },
       "usermeta": {
         "type": "object"
       }
     }
   },
   "signalName": {
     "type": "string",
     "not": {
       "enum": [
         "parent",
         "datum",
         "event",
         "item"
       ]
     }
   },
   "signal": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "name": {
             "$ref": "#/defs/signalName"
           },
           "description": {
             "type": "string"
           },
           "push": {
             "enum": [
               "outer"
             ]
           },
           "on": {
             "$ref": "#/defs/onEvents"
           }
         },
         "required": [
           "name",
           "push"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "name": {
             "$ref": "#/defs/signalName"
           },
           "description": {
             "type": "string"
           },
           "value": {},
           "react": {
             "type": "boolean",
             "default": true
           },
           "update": {
             "$ref": "#/refs/exprString"
           },
           "on": {
             "$ref": "#/defs/onEvents"
           },
           "bind": {
             "$ref": "#/defs/bind"
           }
         },
         "required": [
           "name"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "name": {
             "$ref": "#/defs/signalName"
           },
           "description": {
             "type": "string"
           },
           "value": {},
           "init": {
             "$ref": "#/refs/exprString"
           },
           "on": {
             "$ref": "#/defs/onEvents"
           },
           "bind": {
             "$ref": "#/defs/bind"
           }
         },
         "required": [
           "name",
           "init"
         ],
         "additionalProperties": false
       }
     ]
   },
   "stream": {
     "allOf": [
       {
         "type": "object",
         "properties": {
           "between": {
             "type": "array",
             "items": {
               "$ref": "#/defs/stream"
             },
             "minItems": 2,
             "maxItems": 2
           },
           "marktype": {
             "type": "string"
           },
           "markname": {
             "type": "string"
           },
           "filter": {
             "oneOf": [
               {
                 "$ref": "#/refs/exprString"
               },
               {
                 "type": "array",
                 "items": {
                   "$ref": "#/refs/exprString"
                 },
                 "minItems": 1
               }
             ]
           },
           "throttle": {
             "type": "number"
           },
           "debounce": {
             "type": "number"
           },
           "consume": {
             "type": "boolean"
           }
         }
       },
       {
         "oneOf": [
           {
             "type": "object",
             "properties": {
               "type": {
                 "type": "string"
               },
               "source": {
                 "type": "string"
               }
             },
             "required": [
               "type"
             ]
           },
           {
             "type": "object",
             "properties": {
               "stream": {
                 "$ref": "#/defs/stream"
               }
             },
             "required": [
               "stream"
             ]
           },
           {
             "type": "object",
             "properties": {
               "merge": {
                 "type": "array",
                 "items": {
                   "$ref": "#/defs/stream"
                 },
                 "minItems": 1
               }
             },
             "required": [
               "merge"
             ]
           }
         ]
       }
     ]
   },
   "title": {
     "oneOf": [
       {
         "type": "string"
       },
       {
         "type": "object",
         "properties": {
           "orient": {
             "oneOf": [
               {
                 "enum": [
                   "none",
                   "left",
                   "right",
                   "top",
                   "bottom"
                 ],
                 "default": "top"
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "anchor": {
             "oneOf": [
               {
                 "enum": [
                   null,
                   "start",
                   "middle",
                   "end"
                 ]
               },
               {
                 "$ref": "#/refs/anchorValue"
               }
             ]
           },
           "frame": {
             "oneOf": [
               {
                 "enum": [
                   "group",
                   "bounds"
                 ]
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "offset": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "aria": {
             "type": "boolean"
           },
           "limit": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "zindex": {
             "type": "number"
           },
           "align": {
             "oneOf": [
               {
                 "enum": [
                   "left",
                   "right",
                   "center"
                 ]
               },
               {
                 "$ref": "#/refs/alignValue"
               }
             ]
           },
           "angle": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "baseline": {
             "oneOf": [
               {
                 "enum": [
                   "top",
                   "middle",
                   "bottom",
                   "alphabetic",
                   "line-top",
                   "line-bottom"
                 ]
               },
               {
                 "$ref": "#/refs/baselineValue"
               }
             ]
           },
           "dx": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "dy": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "text": {
             "$ref": "#/refs/textOrSignal"
           },
           "color": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "font": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "fontSize": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "fontStyle": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "fontWeight": {
             "oneOf": [
               {
                 "enum": [
                   null,
                   "normal",
                   "bold",
                   "lighter",
                   "bolder",
                   "100",
                   "200",
                   "300",
                   "400",
                   "500",
                   "600",
                   "700",
                   "800",
                   "900",
                   100,
                   200,
                   300,
                   400,
                   500,
                   600,
                   700,
                   800,
                   900
                 ]
               },
               {
                 "$ref": "#/refs/fontWeightValue"
               }
             ]
           },
           "lineHeight": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "subtitle": {
             "$ref": "#/refs/textOrSignal"
           },
           "subtitleColor": {
             "oneOf": [
               {
                 "type": "null"
               },
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/colorValue"
               }
             ]
           },
           "subtitleFont": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "subtitleFontSize": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "subtitleFontStyle": {
             "oneOf": [
               {
                 "type": "string"
               },
               {
                 "$ref": "#/refs/stringValue"
               }
             ]
           },
           "subtitleFontWeight": {
             "oneOf": [
               {
                 "enum": [
                   null,
                   "normal",
                   "bold",
                   "lighter",
                   "bolder",
                   "100",
                   "200",
                   "300",
                   "400",
                   "500",
                   "600",
                   "700",
                   "800",
                   "900",
                   100,
                   200,
                   300,
                   400,
                   500,
                   600,
                   700,
                   800,
                   900
                 ]
               },
               {
                 "$ref": "#/refs/fontWeightValue"
               }
             ]
           },
           "subtitleLineHeight": {
             "oneOf": [
               {
                 "type": "number"
               },
               {
                 "$ref": "#/refs/numberValue"
               }
             ]
           },
           "subtitlePadding": {
             "$ref": "#/refs/numberOrSignal"
           },
           "encode": {
             "anyOf": [
               {
                 "type": "object",
                 "additionalProperties": false,
                 "patternProperties": {
                   "^(?!interactive|name|style).+$": {
                     "$ref": "#/defs/encodeEntry"
                   }
                 }
               },
               {
                 "type": "object",
                 "properties": {
                   "group": {
                     "$ref": "#/defs/guideEncode"
                   },
                   "title": {
                     "$ref": "#/defs/guideEncode"
                   },
                   "subtitle": {
                     "$ref": "#/defs/guideEncode"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           },
           "name": {
             "type": "string"
           },
           "interactive": {
             "type": "boolean"
           },
           "style": {
             "$ref": "#/refs/style"
           }
         },
         "additionalProperties": false
       }
     ]
   },
   "transform": {
     "oneOf": [
       {
         "$ref": "#/defs/crossfilterTransform"
       },
       {
         "$ref": "#/defs/resolvefilterTransform"
       },
       {
         "$ref": "#/defs/linkpathTransform"
       },
       {
         "$ref": "#/defs/pieTransform"
       },
       {
         "$ref": "#/defs/stackTransform"
       },
       {
         "$ref": "#/defs/forceTransform"
       },
       {
         "$ref": "#/defs/contourTransform"
       },
       {
         "$ref": "#/defs/geojsonTransform"
       },
       {
         "$ref": "#/defs/geopathTransform"
       },
       {
         "$ref": "#/defs/geopointTransform"
       },
       {
         "$ref": "#/defs/geoshapeTransform"
       },
       {
         "$ref": "#/defs/graticuleTransform"
       },
       {
         "$ref": "#/defs/heatmapTransform"
       },
       {
         "$ref": "#/defs/isocontourTransform"
       },
       {
         "$ref": "#/defs/kde2dTransform"
       },
       {
         "$ref": "#/defs/nestTransform"
       },
       {
         "$ref": "#/defs/packTransform"
       },
       {
         "$ref": "#/defs/partitionTransform"
       },
       {
         "$ref": "#/defs/stratifyTransform"
       },
       {
         "$ref": "#/defs/treeTransform"
       },
       {
         "$ref": "#/defs/treelinksTransform"
       },
       {
         "$ref": "#/defs/treemapTransform"
       },
       {
         "$ref": "#/defs/labelTransform"
       },
       {
         "$ref": "#/defs/loessTransform"
       },
       {
         "$ref": "#/defs/regressionTransform"
       },
       {
         "$ref": "#/defs/aggregateTransform"
       },
       {
         "$ref": "#/defs/binTransform"
       },
       {
         "$ref": "#/defs/collectTransform"
       },
       {
         "$ref": "#/defs/countpatternTransform"
       },
       {
         "$ref": "#/defs/crossTransform"
       },
       {
         "$ref": "#/defs/densityTransform"
       },
       {
         "$ref": "#/defs/dotbinTransform"
       },
       {
         "$ref": "#/defs/extentTransform"
       },
       {
         "$ref": "#/defs/filterTransform"
       },
       {
         "$ref": "#/defs/flattenTransform"
       },
       {
         "$ref": "#/defs/foldTransform"
       },
       {
         "$ref": "#/defs/formulaTransform"
       },
       {
         "$ref": "#/defs/imputeTransform"
       },
       {
         "$ref": "#/defs/joinaggregateTransform"
       },
       {
         "$ref": "#/defs/kdeTransform"
       },
       {
         "$ref": "#/defs/lookupTransform"
       },
       {
         "$ref": "#/defs/pivotTransform"
       },
       {
         "$ref": "#/defs/projectTransform"
       },
       {
         "$ref": "#/defs/quantileTransform"
       },
       {
         "$ref": "#/defs/sampleTransform"
       },
       {
         "$ref": "#/defs/sequenceTransform"
       },
       {
         "$ref": "#/defs/timeunitTransform"
       },
       {
         "$ref": "#/defs/windowTransform"
       },
       {
         "$ref": "#/defs/identifierTransform"
       },
       {
         "$ref": "#/defs/voronoiTransform"
       },
       {
         "$ref": "#/defs/wordcloudTransform"
       }
     ]
   },
   "transformMark": {
     "oneOf": [
       {
         "$ref": "#/defs/crossfilterTransform"
       },
       {
         "$ref": "#/defs/resolvefilterTransform"
       },
       {
         "$ref": "#/defs/linkpathTransform"
       },
       {
         "$ref": "#/defs/pieTransform"
       },
       {
         "$ref": "#/defs/stackTransform"
       },
       {
         "$ref": "#/defs/forceTransform"
       },
       {
         "$ref": "#/defs/geojsonTransform"
       },
       {
         "$ref": "#/defs/geopathTransform"
       },
       {
         "$ref": "#/defs/geopointTransform"
       },
       {
         "$ref": "#/defs/geoshapeTransform"
       },
       {
         "$ref": "#/defs/heatmapTransform"
       },
       {
         "$ref": "#/defs/packTransform"
       },
       {
         "$ref": "#/defs/partitionTransform"
       },
       {
         "$ref": "#/defs/stratifyTransform"
       },
       {
         "$ref": "#/defs/treeTransform"
       },
       {
         "$ref": "#/defs/treemapTransform"
       },
       {
         "$ref": "#/defs/labelTransform"
       },
       {
         "$ref": "#/defs/binTransform"
       },
       {
         "$ref": "#/defs/collectTransform"
       },
       {
         "$ref": "#/defs/dotbinTransform"
       },
       {
         "$ref": "#/defs/extentTransform"
       },
       {
         "$ref": "#/defs/formulaTransform"
       },
       {
         "$ref": "#/defs/joinaggregateTransform"
       },
       {
         "$ref": "#/defs/lookupTransform"
       },
       {
         "$ref": "#/defs/sampleTransform"
       },
       {
         "$ref": "#/defs/timeunitTransform"
       },
       {
         "$ref": "#/defs/windowTransform"
       },
       {
         "$ref": "#/defs/identifierTransform"
       },
       {
         "$ref": "#/defs/voronoiTransform"
       },
       {
         "$ref": "#/defs/wordcloudTransform"
       }
     ]
   },
   "crossfilterTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "crossfilter"
         ]
       },
       "signal": {
         "type": "string"
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "query": {
         "oneOf": [
           {
             "type": "array",
             "items": {}
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type",
       "fields",
       "query"
     ],
     "additionalProperties": false
   },
   "resolvefilterTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "resolvefilter"
         ]
       },
       "signal": {
         "type": "string"
       },
       "ignore": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "filter": {}
     },
     "required": [
       "type",
       "ignore",
       "filter"
     ],
     "additionalProperties": false
   },
   "linkpathTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "linkpath"
         ]
       },
       "signal": {
         "type": "string"
       },
       "sourceX": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ],
         "default": "source.x"
       },
       "sourceY": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ],
         "default": "source.y"
       },
       "targetX": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ],
         "default": "target.x"
       },
       "targetY": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ],
         "default": "target.y"
       },
       "orient": {
         "anyOf": [
           {
             "enum": [
               "horizontal",
               "vertical",
               "radial"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "vertical"
       },
       "shape": {
         "anyOf": [
           {
             "enum": [
               "line",
               "arc",
               "curve",
               "diagonal",
               "orthogonal"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "line"
       },
       "require": {
         "$ref": "#/refs/signal"
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "path"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "pieTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "pie"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "startAngle": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "endAngle": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 6.283185307179586
       },
       "sort": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "startAngle",
           "endAngle"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "stackTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "stack"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "offset": {
         "anyOf": [
           {
             "enum": [
               "zero",
               "center",
               "normalize"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "zero"
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "y0",
           "y1"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "forceTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "force"
         ]
       },
       "signal": {
         "type": "string"
       },
       "static": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "restart": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "iterations": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 300
       },
       "alpha": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 1
       },
       "alphaMin": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 0.001
       },
       "alphaTarget": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "velocityDecay": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 0.4
       },
       "forces": {
         "type": "array",
         "items": {
           "oneOf": [
             {
               "type": "object",
               "properties": {
                 "force": {
                   "enum": [
                     "center"
                   ]
                 },
                 "x": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ]
                 },
                 "y": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ]
                 }
               },
               "required": [
                 "force"
               ],
               "additionalProperties": false
             },
             {
               "type": "object",
               "properties": {
                 "force": {
                   "enum": [
                     "collide"
                   ]
                 },
                 "radius": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "$ref": "#/refs/expr"
                     },
                     {
                       "$ref": "#/refs/paramField"
                     }
                   ]
                 },
                 "strength": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 0.7
                 },
                 "iterations": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 1
                 }
               },
               "required": [
                 "force"
               ],
               "additionalProperties": false
             },
             {
               "type": "object",
               "properties": {
                 "force": {
                   "enum": [
                     "nbody"
                   ]
                 },
                 "strength": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": -30
                 },
                 "theta": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 0.9
                 },
                 "distanceMin": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 1
                 },
                 "distanceMax": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ]
                 }
               },
               "required": [
                 "force"
               ],
               "additionalProperties": false
             },
             {
               "type": "object",
               "properties": {
                 "force": {
                   "enum": [
                     "link"
                   ]
                 },
                 "links": {
                   "type": "string"
                 },
                 "id": {
                   "oneOf": [
                     {
                       "$ref": "#/refs/scaleField"
                     },
                     {
                       "$ref": "#/refs/paramField"
                     },
                     {
                       "$ref": "#/refs/expr"
                     }
                   ]
                 },
                 "distance": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "$ref": "#/refs/expr"
                     },
                     {
                       "$ref": "#/refs/paramField"
                     }
                   ],
                   "default": 30
                 },
                 "strength": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     },
                     {
                       "$ref": "#/refs/expr"
                     },
                     {
                       "$ref": "#/refs/paramField"
                     }
                   ]
                 },
                 "iterations": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 1
                 }
               },
               "required": [
                 "force"
               ],
               "additionalProperties": false
             },
             {
               "type": "object",
               "properties": {
                 "force": {
                   "enum": [
                     "x"
                   ]
                 },
                 "strength": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 0.1
                 },
                 "x": {
                   "oneOf": [
                     {
                       "$ref": "#/refs/scaleField"
                     },
                     {
                       "$ref": "#/refs/paramField"
                     },
                     {
                       "$ref": "#/refs/expr"
                     }
                   ]
                 }
               },
               "required": [
                 "force"
               ],
               "additionalProperties": false
             },
             {
               "type": "object",
               "properties": {
                 "force": {
                   "enum": [
                     "y"
                   ]
                 },
                 "strength": {
                   "anyOf": [
                     {
                       "type": "number"
                     },
                     {
                       "$ref": "#/refs/signal"
                     }
                   ],
                   "default": 0.1
                 },
                 "y": {
                   "oneOf": [
                     {
                       "$ref": "#/refs/scaleField"
                     },
                     {
                       "$ref": "#/refs/paramField"
                     },
                     {
                       "$ref": "#/refs/expr"
                     }
                   ]
                 }
               },
               "required": [
                 "force"
               ],
               "additionalProperties": false
             }
           ]
         }
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           "x",
           "y",
           "vx",
           "vy"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "contourTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "contour"
         ]
       },
       "signal": {
         "type": "string"
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "values": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "x": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "y": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "weight": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "cellSize": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "bandwidth": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "count": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "nice": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "thresholds": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "smooth": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       }
     },
     "required": [
       "type",
       "size"
     ],
     "additionalProperties": false
   },
   "geojsonTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "geojson"
         ]
       },
       "signal": {
         "type": "string"
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "geojson": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "geopathTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "geopath"
         ]
       },
       "signal": {
         "type": "string"
       },
       "projection": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "pointRadius": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "path"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "geopointTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "geopoint"
         ]
       },
       "signal": {
         "type": "string"
       },
       "projection": {
         "type": "string"
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "x",
           "y"
         ]
       }
     },
     "required": [
       "type",
       "projection",
       "fields"
     ],
     "additionalProperties": false
   },
   "geoshapeTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "geoshape"
         ]
       },
       "signal": {
         "type": "string"
       },
       "projection": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ],
         "default": "datum"
       },
       "pointRadius": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "shape"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "graticuleTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "graticule"
         ]
       },
       "signal": {
         "type": "string"
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {}
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "extentMajor": {
         "oneOf": [
           {
             "type": "array",
             "items": {}
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "extentMinor": {
         "oneOf": [
           {
             "type": "array",
             "items": {}
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "step": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "stepMajor": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           90,
           360
         ]
       },
       "stepMinor": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           10,
           10
         ]
       },
       "precision": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 2.5
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "heatmapTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "heatmap"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "color": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "opacity": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "resolve": {
         "anyOf": [
           {
             "enum": [
               "shared",
               "independent"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "independent"
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "image"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "isocontourTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "isocontour"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "thresholds": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "levels": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "nice": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "resolve": {
         "anyOf": [
           {
             "enum": [
               "shared",
               "independent"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "independent"
       },
       "zero": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "smooth": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "scale": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "translate": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "$ref": "#/refs/expr"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "type": "null"
           }
         ],
         "default": "contour"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "kde2dTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "kde2d"
         ]
       },
       "signal": {
         "type": "string"
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "x": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "y": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "weight": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "cellSize": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "bandwidth": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "counts": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "grid"
       }
     },
     "required": [
       "type",
       "size",
       "x",
       "y"
     ],
     "additionalProperties": false
   },
   "nestTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "nest"
         ]
       },
       "signal": {
         "type": "string"
       },
       "keys": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "generate": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "packTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "pack"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "padding": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "radius": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 5,
         "minItems": 5,
         "default": [
           "x",
           "y",
           "r",
           "depth",
           "children"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "partitionTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "partition"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "padding": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "round": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 6,
         "minItems": 6,
         "default": [
           "x0",
           "y0",
           "x1",
           "y1",
           "depth",
           "children"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "stratifyTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "stratify"
         ]
       },
       "signal": {
         "type": "string"
       },
       "key": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "parentKey": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       }
     },
     "required": [
       "type",
       "key",
       "parentKey"
     ],
     "additionalProperties": false
   },
   "treeTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "tree"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "method": {
         "anyOf": [
           {
             "enum": [
               "tidy",
               "cluster"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "tidy"
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "nodeSize": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "separation": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 4,
         "minItems": 4,
         "default": [
           "x",
           "y",
           "depth",
           "children"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "treelinksTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "treelinks"
         ]
       },
       "signal": {
         "type": "string"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "treemapTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "treemap"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "method": {
         "anyOf": [
           {
             "enum": [
               "squarify",
               "resquarify",
               "binary",
               "dice",
               "slice",
               "slicedice"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "squarify"
       },
       "padding": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "paddingInner": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "paddingOuter": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "paddingTop": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "paddingRight": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "paddingBottom": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "paddingLeft": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "ratio": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 1.618033988749895
       },
       "round": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 6,
         "minItems": 6,
         "default": [
           "x0",
           "y0",
           "x1",
           "y1",
           "depth",
           "children"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "labelTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "label"
         ]
       },
       "signal": {
         "type": "string"
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "anchor": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           "top-left",
           "left",
           "bottom-left",
           "top",
           "bottom",
           "top-right",
           "right",
           "bottom-right"
         ]
       },
       "offset": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           1
         ]
       },
       "padding": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "lineAnchor": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "end"
       },
       "markIndex": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "avoidBaseMark": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "avoidMarks": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "type": "string"
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "method": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "naive"
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 5,
         "minItems": 5,
         "default": [
           "x",
           "y",
           "opacity",
           "align",
           "baseline"
         ]
       }
     },
     "required": [
       "type",
       "size"
     ],
     "additionalProperties": false
   },
   "loessTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "loess"
         ]
       },
       "signal": {
         "type": "string"
       },
       "x": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "y": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "bandwidth": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 0.3
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type",
       "x",
       "y"
     ],
     "additionalProperties": false
   },
   "regressionTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "regression"
         ]
       },
       "signal": {
         "type": "string"
       },
       "x": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "y": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "method": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "linear"
       },
       "order": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 3
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "params": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type",
       "x",
       "y"
     ],
     "additionalProperties": false
   },
   "aggregateTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "aggregate"
         ]
       },
       "signal": {
         "type": "string"
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "ops": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "enum": [
                     "values",
                     "count",
                     "__count__",
                     "missing",
                     "valid",
                     "sum",
                     "product",
                     "mean",
                     "average",
                     "variance",
                     "variancep",
                     "stdev",
                     "stdevp",
                     "stderr",
                     "distinct",
                     "ci0",
                     "ci1",
                     "median",
                     "q1",
                     "q3",
                     "min",
                     "max",
                     "argmin",
                     "argmax"
                   ]
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "drop": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "cross": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "key": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "binTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "bin"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "interval": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "anchor": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "maxbins": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 20
       },
       "base": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 10
       },
       "divide": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           5,
           2
         ]
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "span": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "step": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "steps": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "minstep": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "nice": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "name": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "bin0",
           "bin1"
         ]
       }
     },
     "required": [
       "type",
       "field",
       "extent"
     ],
     "additionalProperties": false
   },
   "collectTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "collect"
         ]
       },
       "signal": {
         "type": "string"
       },
       "sort": {
         "$ref": "#/refs/compare"
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "countpatternTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "countpattern"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "case": {
         "anyOf": [
           {
             "enum": [
               "upper",
               "lower",
               "mixed"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "mixed"
       },
       "pattern": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "[\\w\"]+"
       },
       "stopwords": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "text",
           "count"
         ]
       }
     },
     "required": [
       "type",
       "field"
     ],
     "additionalProperties": false
   },
   "crossTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "cross"
         ]
       },
       "signal": {
         "type": "string"
       },
       "filter": {
         "$ref": "#/refs/exprString"
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "a",
           "b"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "densityTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "density"
         ]
       },
       "signal": {
         "type": "string"
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "steps": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "minsteps": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 25
       },
       "maxsteps": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 200
       },
       "method": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "pdf"
       },
       "distribution": {
         "oneOf": [
           {
             "type": "object",
             "properties": {
               "function": {
                 "enum": [
                   "normal"
                 ]
               },
               "mean": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               },
               "stdev": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ],
                 "default": 1
               }
             },
             "required": [
               "function"
             ],
             "additionalProperties": false
           },
           {
             "type": "object",
             "properties": {
               "function": {
                 "enum": [
                   "lognormal"
                 ]
               },
               "mean": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               },
               "stdev": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ],
                 "default": 1
               }
             },
             "required": [
               "function"
             ],
             "additionalProperties": false
           },
           {
             "type": "object",
             "properties": {
               "function": {
                 "enum": [
                   "uniform"
                 ]
               },
               "min": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               },
               "max": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ],
                 "default": 1
               }
             },
             "required": [
               "function"
             ],
             "additionalProperties": false
           },
           {
             "type": "object",
             "properties": {
               "function": {
                 "enum": [
                   "kde"
                 ]
               },
               "field": {
                 "oneOf": [
                   {
                     "$ref": "#/refs/scaleField"
                   },
                   {
                     "$ref": "#/refs/paramField"
                   },
                   {
                     "$ref": "#/refs/expr"
                   }
                 ]
               },
               "from": {
                 "type": "string"
               },
               "bandwidth": {
                 "anyOf": [
                   {
                     "type": "number"
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               }
             },
             "required": [
               "function",
               "field"
             ],
             "additionalProperties": false
           },
           {
             "type": "object",
             "properties": {
               "function": {
                 "enum": [
                   "mixture"
                 ]
               },
               "distributions": {
                 "oneOf": [
                   {
                     "type": "array",
                     "items": {}
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               },
               "weights": {
                 "oneOf": [
                   {
                     "type": "array",
                     "items": {
                       "anyOf": [
                         {
                           "type": "number"
                         },
                         {
                           "$ref": "#/refs/signal"
                         }
                       ]
                     }
                   },
                   {
                     "$ref": "#/refs/signal"
                   }
                 ]
               }
             },
             "required": [
               "function"
             ],
             "additionalProperties": false
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           "value",
           "density"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "dotbinTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "dotbin"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "step": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "smooth": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "bin"
       }
     },
     "required": [
       "type",
       "field"
     ],
     "additionalProperties": false
   },
   "extentTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "extent"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       }
     },
     "required": [
       "type",
       "field"
     ],
     "additionalProperties": false
   },
   "filterTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "filter"
         ]
       },
       "signal": {
         "type": "string"
       },
       "expr": {
         "$ref": "#/refs/exprString"
       }
     },
     "required": [
       "type",
       "expr"
     ],
     "additionalProperties": false
   },
   "flattenTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "flatten"
         ]
       },
       "signal": {
         "type": "string"
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "index": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type",
       "fields"
     ],
     "additionalProperties": false
   },
   "foldTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "fold"
         ]
       },
       "signal": {
         "type": "string"
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "key",
           "value"
         ]
       }
     },
     "required": [
       "type",
       "fields"
     ],
     "additionalProperties": false
   },
   "formulaTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "formula"
         ]
       },
       "signal": {
         "type": "string"
       },
       "expr": {
         "$ref": "#/refs/exprString"
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "initonly": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type",
       "expr",
       "as"
     ],
     "additionalProperties": false
   },
   "imputeTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "impute"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "key": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "keyvals": {
         "oneOf": [
           {
             "type": "array",
             "items": {}
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "method": {
         "anyOf": [
           {
             "enum": [
               "value",
               "mean",
               "median",
               "max",
               "min"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "value"
       },
       "value": {}
     },
     "required": [
       "type",
       "field",
       "key"
     ],
     "additionalProperties": false
   },
   "joinaggregateTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "joinaggregate"
         ]
       },
       "signal": {
         "type": "string"
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "ops": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "enum": [
                     "values",
                     "count",
                     "__count__",
                     "missing",
                     "valid",
                     "sum",
                     "product",
                     "mean",
                     "average",
                     "variance",
                     "variancep",
                     "stdev",
                     "stdevp",
                     "stderr",
                     "distinct",
                     "ci0",
                     "ci1",
                     "median",
                     "q1",
                     "q3",
                     "min",
                     "max",
                     "argmin",
                     "argmax"
                   ]
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "key": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "kdeTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "kde"
         ]
       },
       "signal": {
         "type": "string"
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "cumulative": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "counts": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "bandwidth": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "resolve": {
         "anyOf": [
           {
             "enum": [
               "shared",
               "independent"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "independent"
       },
       "steps": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "minsteps": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 25
       },
       "maxsteps": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 200
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           "value",
           "density"
         ]
       }
     },
     "required": [
       "type",
       "field"
     ],
     "additionalProperties": false
   },
   "lookupTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "lookup"
         ]
       },
       "signal": {
         "type": "string"
       },
       "from": {
         "type": "string"
       },
       "key": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "values": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "default": {}
     },
     "required": [
       "type",
       "from",
       "key",
       "fields"
     ],
     "additionalProperties": false
   },
   "pivotTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "pivot"
         ]
       },
       "signal": {
         "type": "string"
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "value": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "op": {
         "anyOf": [
           {
             "enum": [
               "values",
               "count",
               "__count__",
               "missing",
               "valid",
               "sum",
               "product",
               "mean",
               "average",
               "variance",
               "variancep",
               "stdev",
               "stdevp",
               "stderr",
               "distinct",
               "ci0",
               "ci1",
               "median",
               "q1",
               "q3",
               "min",
               "max",
               "argmin",
               "argmax"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "sum"
       },
       "limit": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "key": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       }
     },
     "required": [
       "type",
       "field",
       "value"
     ],
     "additionalProperties": false
   },
   "projectTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "project"
         ]
       },
       "signal": {
         "type": "string"
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "quantileTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "quantile"
         ]
       },
       "signal": {
         "type": "string"
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "probs": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "step": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 0.01
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": [
           "prob",
           "value"
         ]
       }
     },
     "required": [
       "type",
       "field"
     ],
     "additionalProperties": false
   },
   "sampleTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "sample"
         ]
       },
       "signal": {
         "type": "string"
       },
       "size": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 1000
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "sequenceTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "sequence"
         ]
       },
       "signal": {
         "type": "string"
       },
       "start": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "stop": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "step": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 1
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "data"
       }
     },
     "required": [
       "type",
       "start",
       "stop"
     ],
     "additionalProperties": false
   },
   "timeunitTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "timeunit"
         ]
       },
       "signal": {
         "type": "string"
       },
       "field": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "interval": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": true
       },
       "units": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "enum": [
                     "year",
                     "quarter",
                     "month",
                     "week",
                     "date",
                     "day",
                     "dayofyear",
                     "hours",
                     "minutes",
                     "seconds",
                     "milliseconds"
                   ]
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "step": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 1
       },
       "maxbins": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": 40
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "timezone": {
         "anyOf": [
           {
             "enum": [
               "local",
               "utc"
             ]
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "local"
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           "unit0",
           "unit1"
         ]
       }
     },
     "required": [
       "type",
       "field"
     ],
     "additionalProperties": false
   },
   "windowTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "window"
         ]
       },
       "signal": {
         "type": "string"
       },
       "sort": {
         "$ref": "#/refs/compare"
       },
       "groupby": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "ops": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "enum": [
                     "row_number",
                     "rank",
                     "dense_rank",
                     "percent_rank",
                     "cume_dist",
                     "ntile",
                     "lag",
                     "lead",
                     "first_value",
                     "last_value",
                     "nth_value",
                     "prev_value",
                     "next_value",
                     "values",
                     "count",
                     "__count__",
                     "missing",
                     "valid",
                     "sum",
                     "product",
                     "mean",
                     "average",
                     "variance",
                     "variancep",
                     "stdev",
                     "stdevp",
                     "stderr",
                     "distinct",
                     "ci0",
                     "ci1",
                     "median",
                     "q1",
                     "q3",
                     "min",
                     "max",
                     "argmin",
                     "argmax"
                   ]
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "params": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "fields": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/paramField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "frame": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 },
                 {
                   "type": "null"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           null,
           0
         ]
       },
       "ignorePeers": {
         "anyOf": [
           {
             "type": "boolean"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   },
   "identifierTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "identifier"
         ]
       },
       "signal": {
         "type": "string"
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       }
     },
     "required": [
       "type",
       "as"
     ],
     "additionalProperties": false
   },
   "voronoiTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "voronoi"
         ]
       },
       "signal": {
         "type": "string"
       },
       "x": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "y": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "extent": {
         "oneOf": [
           {
             "type": "array",
             "items": {}
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2,
         "default": [
           [
             -100000,
             -100000
           ],
           [
             100000,
             100000
           ]
         ]
       },
       "as": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "default": "path"
       }
     },
     "required": [
       "type",
       "x",
       "y"
     ],
     "additionalProperties": false
   },
   "wordcloudTransform": {
     "type": "object",
     "properties": {
       "type": {
         "enum": [
           "wordcloud"
         ]
       },
       "signal": {
         "type": "string"
       },
       "size": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 2,
         "minItems": 2
       },
       "font": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ],
         "default": "sans-serif"
       },
       "fontStyle": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ],
         "default": "normal"
       },
       "fontWeight": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ],
         "default": "normal"
       },
       "fontSize": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ],
         "default": 14
       },
       "fontSizeRange": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "number"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "type": "null"
           }
         ],
         "default": [
           10,
           50
         ]
       },
       "rotate": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "text": {
         "oneOf": [
           {
             "$ref": "#/refs/scaleField"
           },
           {
             "$ref": "#/refs/paramField"
           },
           {
             "$ref": "#/refs/expr"
           }
         ]
       },
       "spiral": {
         "anyOf": [
           {
             "type": "string"
           },
           {
             "$ref": "#/refs/signal"
           }
         ]
       },
       "padding": {
         "anyOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/signal"
           },
           {
             "$ref": "#/refs/expr"
           },
           {
             "$ref": "#/refs/paramField"
           }
         ]
       },
       "as": {
         "oneOf": [
           {
             "type": "array",
             "items": {
               "anyOf": [
                 {
                   "type": "string"
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             }
           },
           {
             "$ref": "#/refs/signal"
           }
         ],
         "maxItems": 7,
         "minItems": 7,
         "default": [
           "x",
           "y",
           "font",
           "fontSize",
           "fontStyle",
           "fontWeight",
           "angle"
         ]
       }
     },
     "required": [
       "type"
     ],
     "additionalProperties": false
   }
 },
 "refs": {
   "labelOverlap": {
     "oneOf": [
       {
         "type": "boolean"
       },
       {
         "enum": [
           "parity",
           "greedy"
         ]
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "tickBand": {
     "oneOf": [
       {
         "enum": [
           "center",
           "extent"
         ]
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "tickCount": {
     "oneOf": [
       {
         "type": "number"
       },
       {
         "enum": [
           "millisecond",
           "second",
           "minute",
           "hour",
           "day",
           "week",
           "month",
           "year"
         ]
       },
       {
         "type": "object",
         "properties": {
           "interval": {
             "oneOf": [
               {
                 "enum": [
                   "millisecond",
                   "second",
                   "minute",
                   "hour",
                   "day",
                   "week",
                   "month",
                   "year"
                 ]
               },
               {
                 "$ref": "#/refs/signal"
               }
             ]
           },
           "step": {
             "$ref": "#/refs/numberOrSignal"
           }
         },
         "required": [
           "interval"
         ],
         "additionalProperties": false
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "element": {
     "type": "string"
   },
   "paramField": {
     "type": "object",
     "properties": {
       "field": {
         "type": "string"
       },
       "as": {
         "type": "string"
       }
     },
     "required": [
       "field"
     ],
     "additionalProperties": false
   },
   "field": {
     "oneOf": [
       {
         "type": "string"
       },
       {
         "$ref": "#/refs/signal"
       },
       {
         "type": "object",
         "properties": {
           "datum": {
             "$ref": "#/refs/field"
           }
         },
         "required": [
           "datum"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "group": {
             "$ref": "#/refs/field"
           },
           "level": {
             "type": "number"
           }
         },
         "required": [
           "group"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "parent": {
             "$ref": "#/refs/field"
           },
           "level": {
             "type": "number"
           }
         },
         "required": [
           "parent"
         ],
         "additionalProperties": false
       }
     ]
   },
   "scale": {
     "$ref": "#/refs/field"
   },
   "stringModifiers": {
     "type": "object",
     "properties": {
       "scale": {
         "$ref": "#/refs/scale"
       }
     }
   },
   "numberModifiers": {
     "type": "object",
     "properties": {
       "exponent": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "mult": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "offset": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "$ref": "#/refs/numberValue"
           }
         ]
       },
       "round": {
         "type": "boolean",
         "default": false
       },
       "scale": {
         "$ref": "#/refs/scale"
       },
       "band": {
         "oneOf": [
           {
             "type": "number"
           },
           {
             "type": "boolean"
           }
         ]
       },
       "extra": {
         "type": "boolean"
       }
     }
   },
   "anyValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {}
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {}
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "blendValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 null,
                                 "multiply",
                                 "screen",
                                 "overlay",
                                 "darken",
                                 "lighten",
                                 "color-dodge",
                                 "color-burn",
                                 "hard-light",
                                 "soft-light",
                                 "difference",
                                 "exclusion",
                                 "hue",
                                 "saturation",
                                 "color",
                                 "luminosity"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           null,
                           "multiply",
                           "screen",
                           "overlay",
                           "darken",
                           "lighten",
                           "color-dodge",
                           "color-burn",
                           "hard-light",
                           "soft-light",
                           "difference",
                           "exclusion",
                           "hue",
                           "saturation",
                           "color",
                           "luminosity"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "numberValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/numberModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "type": "number"
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/numberModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "type": "number"
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "stringValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "type": "string"
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "type": "string"
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "textValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "oneOf": [
                                 {
                                   "type": "string"
                                 },
                                 {
                                   "type": "array",
                                   "items": {
                                     "type": "string"
                                   }
                                 }
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "oneOf": [
                           {
                             "type": "string"
                           },
                           {
                             "type": "array",
                             "items": {
                               "type": "string"
                             }
                           }
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "booleanValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "type": "boolean"
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "type": "boolean"
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "arrayValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "type": "array"
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "type": "array"
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "fontWeightValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 null,
                                 "normal",
                                 "bold",
                                 "lighter",
                                 "bolder",
                                 "100",
                                 "200",
                                 "300",
                                 "400",
                                 "500",
                                 "600",
                                 "700",
                                 "800",
                                 "900",
                                 100,
                                 200,
                                 300,
                                 400,
                                 500,
                                 600,
                                 700,
                                 800,
                                 900
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           null,
                           "normal",
                           "bold",
                           "lighter",
                           "bolder",
                           "100",
                           "200",
                           "300",
                           "400",
                           "500",
                           "600",
                           "700",
                           "800",
                           "900",
                           100,
                           200,
                           300,
                           400,
                           500,
                           600,
                           700,
                           800,
                           900
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "anchorValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "start",
                                 "middle",
                                 "end"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "start",
                           "middle",
                           "end"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "alignValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "left",
                                 "right",
                                 "center"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "left",
                           "right",
                           "center"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "baselineValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "top",
                                 "middle",
                                 "bottom",
                                 "alphabetic"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "top",
                           "middle",
                           "bottom",
                           "alphabetic"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "directionValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "horizontal",
                                 "vertical"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "horizontal",
                           "vertical"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "orientValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "left",
                                 "right",
                                 "top",
                                 "bottom"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "left",
                           "right",
                           "top",
                           "bottom"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "strokeCapValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "butt",
                                 "round",
                                 "square"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "butt",
                           "round",
                           "square"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "strokeJoinValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "allOf": [
                 {
                   "$ref": "#/refs/stringModifiers"
                 },
                 {
                   "anyOf": [
                     {
                       "oneOf": [
                         {
                           "$ref": "#/refs/signal"
                         },
                         {
                           "type": "object",
                           "properties": {
                             "value": {
                               "enum": [
                                 "miter",
                                 "round",
                                 "bevel"
                               ]
                             }
                           },
                           "required": [
                             "value"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "field": {
                               "$ref": "#/refs/field"
                             }
                           },
                           "required": [
                             "field"
                           ]
                         },
                         {
                           "type": "object",
                           "properties": {
                             "range": {
                               "oneOf": [
                                 {
                                   "type": "number"
                                 },
                                 {
                                   "type": "boolean"
                                 }
                               ]
                             }
                           },
                           "required": [
                             "range"
                           ]
                         }
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "value"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "scale",
                         "band"
                       ]
                     },
                     {
                       "type": "object",
                       "required": [
                         "offset"
                       ]
                     }
                   ]
                 }
               ]
             }
           ]
         }
       },
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "enum": [
                           "miter",
                           "round",
                           "bevel"
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       }
     ]
   },
   "baseColorValue": {
     "oneOf": [
       {
         "allOf": [
           {
             "$ref": "#/refs/stringModifiers"
           },
           {
             "anyOf": [
               {
                 "oneOf": [
                   {
                     "$ref": "#/refs/signal"
                   },
                   {
                     "type": "object",
                     "properties": {
                       "value": {
                         "oneOf": [
                           {
                             "type": "string"
                           },
                           {
                             "type": "null"
                           }
                         ]
                       }
                     },
                     "required": [
                       "value"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "field": {
                         "$ref": "#/refs/field"
                       }
                     },
                     "required": [
                       "field"
                     ]
                   },
                   {
                     "type": "object",
                     "properties": {
                       "range": {
                         "oneOf": [
                           {
                             "type": "number"
                           },
                           {
                             "type": "boolean"
                           }
                         ]
                       }
                     },
                     "required": [
                       "range"
                     ]
                   }
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "value"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "scale",
                   "band"
                 ]
               },
               {
                 "type": "object",
                 "required": [
                   "offset"
                 ]
               }
             ]
           }
         ]
       },
       {
         "type": "object",
         "properties": {
           "value": {
             "$ref": "#/refs/linearGradient"
           }
         },
         "required": [
           "value"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "value": {
             "$ref": "#/refs/radialGradient"
           }
         },
         "required": [
           "value"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "gradient": {
             "$ref": "#/refs/scale"
           },
           "start": {
             "type": "array",
             "items": {
               "type": "number"
             },
             "minItems": 2,
             "maxItems": 2
           },
           "stop": {
             "type": "array",
             "items": {
               "type": "number"
             },
             "minItems": 2,
             "maxItems": 2
           },
           "count": {
             "type": "number"
           }
         },
         "required": [
           "gradient"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "color": {
             "oneOf": [
               {
                 "$ref": "#/refs/colorRGB"
               },
               {
                 "$ref": "#/refs/colorHSL"
               },
               {
                 "$ref": "#/refs/colorLAB"
               },
               {
                 "$ref": "#/refs/colorHCL"
               }
             ]
           }
         },
         "required": [
           "color"
         ],
         "additionalProperties": false
       }
     ]
   },
   "colorRGB": {
     "type": "object",
     "properties": {
       "r": {
         "$ref": "#/refs/numberValue"
       },
       "g": {
         "$ref": "#/refs/numberValue"
       },
       "b": {
         "$ref": "#/refs/numberValue"
       }
     },
     "required": [
       "r",
       "g",
       "b"
     ]
   },
   "colorHSL": {
     "type": "object",
     "properties": {
       "h": {
         "$ref": "#/refs/numberValue"
       },
       "s": {
         "$ref": "#/refs/numberValue"
       },
       "l": {
         "$ref": "#/refs/numberValue"
       }
     },
     "required": [
       "h",
       "s",
       "l"
     ]
   },
   "colorLAB": {
     "type": "object",
     "properties": {
       "l": {
         "$ref": "#/refs/numberValue"
       },
       "a": {
         "$ref": "#/refs/numberValue"
       },
       "b": {
         "$ref": "#/refs/numberValue"
       }
     },
     "required": [
       "l",
       "a",
       "b"
     ]
   },
   "colorHCL": {
     "type": "object",
     "properties": {
       "h": {
         "$ref": "#/refs/numberValue"
       },
       "c": {
         "$ref": "#/refs/numberValue"
       },
       "l": {
         "$ref": "#/refs/numberValue"
       }
     },
     "required": [
       "h",
       "c",
       "l"
     ]
   },
   "colorValue": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "allOf": [
             {
               "$ref": "#/defs/rule"
             },
             {
               "$ref": "#/refs/baseColorValue"
             }
           ]
         }
       },
       {
         "$ref": "#/refs/baseColorValue"
       }
     ]
   },
   "gradientStops": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "offset": {
           "type": "number"
         },
         "color": {
           "type": "string"
         }
       },
       "required": [
         "offset",
         "color"
       ],
       "additionalProperties": false
     }
   },
   "linearGradient": {
     "type": "object",
     "properties": {
       "gradient": {
         "enum": [
           "linear"
         ]
       },
       "id": {
         "type": "string"
       },
       "x1": {
         "type": "number"
       },
       "y1": {
         "type": "number"
       },
       "x2": {
         "type": "number"
       },
       "y2": {
         "type": "number"
       },
       "stops": {
         "$ref": "#/refs/gradientStops"
       }
     },
     "required": [
       "gradient",
       "stops"
     ],
     "additionalProperties": false
   },
   "radialGradient": {
     "type": "object",
     "properties": {
       "gradient": {
         "enum": [
           "radial"
         ]
       },
       "id": {
         "type": "string"
       },
       "x1": {
         "type": "number"
       },
       "y1": {
         "type": "number"
       },
       "r1": {
         "type": "number"
       },
       "x2": {
         "type": "number"
       },
       "y2": {
         "type": "number"
       },
       "r2": {
         "type": "number"
       },
       "stops": {
         "$ref": "#/refs/gradientStops"
       }
     },
     "required": [
       "gradient",
       "stops"
     ],
     "additionalProperties": false
   },
   "expr": {
     "type": "object",
     "properties": {
       "expr": {
         "type": "string"
       },
       "as": {
         "type": "string"
       }
     },
     "required": [
       "expr"
     ]
   },
   "exprString": {
     "type": "string"
   },
   "compare": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "field": {
             "oneOf": [
               {
                 "$ref": "#/refs/scaleField"
               },
               {
                 "$ref": "#/refs/expr"
               }
             ]
           },
           "order": {
             "$ref": "#/refs/sortOrder"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "field": {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "$ref": "#/refs/scaleField"
                 },
                 {
                   "$ref": "#/refs/expr"
                 }
               ]
             }
           },
           "order": {
             "type": "array",
             "items": {
               "$ref": "#/refs/sortOrder"
             }
           }
         },
         "additionalProperties": false
       }
     ]
   },
   "from": {
     "type": "object",
     "properties": {
       "data": {
         "type": "string"
       }
     },
     "additionalProperties": false
   },
   "facet": {
     "type": "object",
     "properties": {
       "data": {
         "type": "string"
       },
       "facet": {
         "oneOf": [
           {
             "type": "object",
             "properties": {
               "name": {
                 "type": "string"
               },
               "data": {
                 "type": "string"
               },
               "field": {
                 "type": "string"
               }
             },
             "required": [
               "name",
               "data",
               "field"
             ],
             "additionalProperties": false
           },
           {
             "type": "object",
             "properties": {
               "name": {
                 "type": "string"
               },
               "data": {
                 "type": "string"
               },
               "groupby": {
                 "oneOf": [
                   {
                     "type": "string"
                   },
                   {
                     "type": "array",
                     "items": {
                       "type": "string"
                     }
                   }
                 ]
               },
               "aggregate": {
                 "type": "object",
                 "properties": {
                   "cross": {
                     "type": "boolean"
                   },
                   "fields": {
                     "type": "array",
                     "items": {
                       "type": "string"
                     }
                   },
                   "ops": {
                     "type": "array",
                     "items": {
                       "type": "string"
                     }
                   },
                   "as": {
                     "type": "array",
                     "items": {
                       "type": "string"
                     }
                   }
                 },
                 "additionalProperties": false
               }
             },
             "required": [
               "name",
               "data",
               "groupby"
             ],
             "additionalProperties": false
           }
         ]
       }
     },
     "required": [
       "facet"
     ],
     "additionalProperties": false
   },
   "markclip": {
     "oneOf": [
       {
         "$ref": "#/refs/booleanOrSignal"
       },
       {
         "type": "object",
         "properties": {
           "path": {
             "$ref": "#/refs/stringOrSignal"
           }
         },
         "required": [
           "path"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "sphere": {
             "$ref": "#/refs/stringOrSignal"
           }
         },
         "required": [
           "sphere"
         ],
         "additionalProperties": false
       }
     ]
   },
   "style": {
     "oneOf": [
       {
         "type": "string"
       },
       {
         "type": "array",
         "items": {
           "type": "string"
         }
       }
     ]
   },
   "marktype": {
     "type": "string"
   },
   "scaleField": {
     "$ref": "#/refs/stringOrSignal"
   },
   "sortOrder": {
     "oneOf": [
       {
         "enum": [
           "ascending",
           "descending"
         ]
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "scaleBins": {
     "oneOf": [
       {
         "type": "array",
         "items": {
           "$ref": "#/refs/numberOrSignal"
         }
       },
       {
         "type": "object",
         "properties": {
           "step": {
             "$ref": "#/refs/numberOrSignal"
           },
           "start": {
             "$ref": "#/refs/numberOrSignal"
           },
           "stop": {
             "$ref": "#/refs/numberOrSignal"
           }
         },
         "required": [
           "step"
         ],
         "additionalProperties": false
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "scaleInterpolate": {
     "oneOf": [
       {
         "type": "string"
       },
       {
         "$ref": "#/refs/signal"
       },
       {
         "type": "object",
         "properties": {
           "type": {
             "$ref": "#/refs/stringOrSignal"
           },
           "gamma": {
             "$ref": "#/refs/numberOrSignal"
           }
         },
         "required": [
           "type"
         ],
         "additionalProperties": false
       }
     ]
   },
   "scaleData": {
     "oneOf": [
       {
         "type": "object",
         "properties": {
           "data": {
             "type": "string"
           },
           "field": {
             "$ref": "#/refs/stringOrSignal"
           },
           "sort": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "object",
                 "properties": {
                   "field": {
                     "$ref": "#/refs/stringOrSignal"
                   },
                   "op": {
                     "$ref": "#/refs/stringOrSignal"
                   },
                   "order": {
                     "$ref": "#/refs/sortOrder"
                   }
                 },
                 "additionalProperties": false
               }
             ]
           }
         },
         "required": [
           "data",
           "field"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "data": {
             "type": "string"
           },
           "fields": {
             "type": "array",
             "items": {
               "$ref": "#/refs/stringOrSignal"
             },
             "minItems": 1
           },
           "sort": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "object",
                 "properties": {
                   "op": {
                     "enum": [
                       "count"
                     ]
                   },
                   "order": {
                     "$ref": "#/refs/sortOrder"
                   }
                 },
                 "additionalProperties": false
               },
               {
                 "type": "object",
                 "properties": {
                   "field": {
                     "$ref": "#/refs/stringOrSignal"
                   },
                   "op": {
                     "enum": [
                       "count",
                       "min",
                       "max"
                     ]
                   },
                   "order": {
                     "$ref": "#/refs/sortOrder"
                   }
                 },
                 "required": [
                   "field",
                   "op"
                 ],
                 "additionalProperties": false
               }
             ]
           }
         },
         "required": [
           "data",
           "fields"
         ],
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "fields": {
             "type": "array",
             "items": {
               "oneOf": [
                 {
                   "type": "object",
                   "properties": {
                     "data": {
                       "type": "string"
                     },
                     "field": {
                       "$ref": "#/refs/stringOrSignal"
                     }
                   },
                   "required": [
                     "data",
                     "field"
                   ],
                   "additionalProperties": false
                 },
                 {
                   "type": "array",
                   "items": {
                     "oneOf": [
                       {
                         "type": "string"
                       },
                       {
                         "type": "number"
                       },
                       {
                         "type": "boolean"
                       }
                     ]
                   }
                 },
                 {
                   "$ref": "#/refs/signal"
                 }
               ]
             },
             "minItems": 1
           },
           "sort": {
             "oneOf": [
               {
                 "type": "boolean"
               },
               {
                 "type": "object",
                 "properties": {
                   "op": {
                     "enum": [
                       "count"
                     ]
                   },
                   "order": {
                     "$ref": "#/refs/sortOrder"
                   }
                 },
                 "additionalProperties": false
               },
               {
                 "type": "object",
                 "properties": {
                   "field": {
                     "$ref": "#/refs/stringOrSignal"
                   },
                   "op": {
                     "enum": [
                       "count",
                       "min",
                       "max"
                     ]
                   },
                   "order": {
                     "$ref": "#/refs/sortOrder"
                   }
                 },
                 "required": [
                   "field",
                   "op"
                 ],
                 "additionalProperties": false
               }
             ]
           }
         },
         "required": [
           "fields"
         ],
         "additionalProperties": false
       }
     ]
   },
   "selector": {
     "type": "string"
   },
   "signal": {
     "type": "object",
     "properties": {
       "signal": {
         "type": "string"
       }
     },
     "required": [
       "signal"
     ]
   },
   "arrayOrSignal": {
     "oneOf": [
       {
         "type": "array"
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "booleanOrSignal": {
     "oneOf": [
       {
         "type": "boolean"
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "numberOrSignal": {
     "oneOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "stringOrSignal": {
     "oneOf": [
       {
         "type": "string"
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   },
   "textOrSignal": {
     "oneOf": [
       {
         "oneOf": [
           {
             "type": "string"
           },
           {
             "type": "array",
             "items": {
               "type": "string"
             }
           }
         ]
       },
       {
         "$ref": "#/refs/signal"
       }
     ]
   }
 },
 "type": "object",
 "allOf": [
   {
     "$ref": "#/defs/scope"
   },
   {
     "properties": {
       "$schema": {
         "type": "string",
         "format": "uri"
       },
       "config": {
         "type": "object"
       },
       "description": {
         "type": "string"
       },
       "width": {
         "$ref": "#/refs/numberOrSignal"
       },
       "height": {
         "$ref": "#/refs/numberOrSignal"
       },
       "padding": {
         "$ref": "#/defs/padding"
       },
       "autosize": {
         "$ref": "#/defs/autosize"
       },
       "background": {
         "$ref": "#/defs/background"
       },
       "style": {
         "$ref": "#/refs/style"
       }
     }
   }
 ]

}