Difference between revisions of "Getting Started"

From maker-hub
Jump to navigation Jump to search
Line 1: Line 1:
[[File:MakerHub1.jpg|500px|right|Maker Hub]]
+
[[File:Few Word.png|500px|frame|right]]
  
 
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 [https://www.georgefox.edu/maps_locations/inter_map/campus-facilities/sub.html Klages Center] that comprises several [[Facilities|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 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 [https://www.georgefox.edu/maps_locations/inter_map/campus-facilities/sub.html Klages Center] that comprises several [[Facilities|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.

Revision as of 13:52, 19 October 2020

Few Word.png

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"
       }
     }
   }
 ]

}