{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://pivograph.com/schemas/project/v1.json",
  "title": "PivoGraph project document (schemaVersion 1)",
  "description": "A PivoGraph .pivograph project file: data tables with their graph documents, analyses and annotations. Plain UTF-8 JSON. Unknown keys are rejected; use `usermeta` for tool-specific data. Human-readable specification: https://pivograph.com/developers/project-format/v1/ ; Markdown: https://pivograph.com/developers/project-format/v1.md ; examples: https://pivograph.com/schemas/project/v1/examples/",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "maxLength": 500
    },
    "format": {
      "type": "string",
      "const": "pivograph-project"
    },
    "schemaVersion": {
      "type": "number",
      "const": 1
    },
    "generator": {
      "allOf": [
        {
          "$ref": "#/definitions/GeneratorInfo"
        }
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "modifiedAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "meta": {
      "allOf": [
        {
          "$ref": "#/definitions/ProjectMeta"
        }
      ]
    },
    "usermeta": {
      "allOf": [
        {
          "$ref": "#/definitions/Usermeta"
        }
      ]
    },
    "view": {
      "allOf": [
        {
          "$ref": "#/definitions/ViewHint"
        }
      ]
    },
    "tables": {
      "maxItems": 200,
      "type": "array",
      "items": {
        "$ref": "#/definitions/Table"
      }
    }
  },
  "required": [
    "format",
    "schemaVersion",
    "tables"
  ],
  "additionalProperties": false,
  "definitions": {
    "GeneratorInfo": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "version": {
          "type": "string",
          "maxLength": 300
        },
        "url": {
          "type": "string",
          "maxLength": 500
        }
      },
      "required": [
        "name",
        "version"
      ],
      "additionalProperties": false
    },
    "ProjectMeta": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 200
        },
        "description": {
          "type": "string",
          "maxLength": 2000
        },
        "authors": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          }
        },
        "license": {
          "type": "string",
          "maxLength": 2000
        },
        "source": {
          "type": "string",
          "maxLength": 2000
        },
        "keywords": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          }
        }
      },
      "required": [
        "title"
      ],
      "additionalProperties": false
    },
    "Usermeta": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "$ref": "#/definitions/JsonValue"
      }
    },
    "JsonValue": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JsonValue"
          }
        },
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/definitions/JsonValue"
          }
        }
      ]
    },
    "ViewHint": {
      "type": "object",
      "properties": {
        "activeTableId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "description": "Opaque identifier; must be unique within its scope in the document."
        },
        "workspaceView": {
          "type": "string",
          "enum": [
            "table",
            "graph"
          ]
        }
      },
      "additionalProperties": false
    },
    "Table": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "description": "Opaque identifier; must be unique within its scope in the document."
        },
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "format": {
          "type": "string",
          "enum": [
            "xy",
            "column",
            "grouped",
            "nested",
            "contingency",
            "survival",
            "partsOfWhole",
            "multipleVariables"
          ]
        },
        "replicates": {
          "type": "integer",
          "minimum": 1,
          "maximum": 64
        },
        "x": {
          "maxItems": 200000,
          "type": "array",
          "items": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "rowLabels": {
          "maxItems": 200000,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          }
        },
        "dataSets": {
          "minItems": 1,
          "maxItems": 500,
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataSet"
          }
        },
        "variableTypes": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "enum": [
              "continuous",
              "categorical",
              "label"
            ]
          }
        },
        "columnWidths": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "number",
            "minimum": 0
          }
        },
        "derivedFrom": {
          "allOf": [
            {
              "$ref": "#/definitions/DerivedFrom"
            }
          ]
        },
        "graph": {
          "allOf": [
            {
              "$ref": "#/definitions/GraphDocument"
            }
          ]
        },
        "analyses": {
          "maxItems": 200,
          "type": "array",
          "items": {
            "$ref": "#/definitions/AnalysisInstance"
          }
        },
        "annotations": {
          "maxItems": 2000,
          "type": "array",
          "items": {
            "$ref": "#/definitions/Annotation"
          }
        },
        "titles": {
          "allOf": [
            {
              "$ref": "#/definitions/TitlesState"
            }
          ]
        },
        "usermeta": {
          "allOf": [
            {
              "$ref": "#/definitions/Usermeta"
            }
          ]
        }
      },
      "required": [
        "format"
      ],
      "additionalProperties": false
    },
    "DataSet": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "values": {
          "maxItems": 200000,
          "type": "array",
          "items": {
            "maxItems": 64,
            "type": "array",
            "items": {
              "$ref": "#/definitions/CellValue"
            }
          }
        }
      },
      "required": [
        "name",
        "values"
      ],
      "additionalProperties": false
    },
    "CellValue": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "null"
        }
      ]
    },
    "DerivedFrom": {
      "type": "object",
      "properties": {
        "sourceTableId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "description": "Opaque identifier; must be unique within its scope in the document."
        },
        "analysisId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "description": "Opaque identifier; must be unique within its scope in the document."
        }
      },
      "required": [
        "sourceTableId",
        "analysisId"
      ],
      "additionalProperties": false
    },
    "GraphDocument": {
      "type": "object",
      "properties": {
        "variantId": {
          "$ref": "#/definitions/GraphVariantId"
        },
        "plot": {
          "allOf": [
            {
              "$ref": "#/definitions/PlotConfig"
            }
          ]
        },
        "activePresetId": {
          "allOf": [
            {
              "$ref": "#/definitions/ThemePresetId"
            }
          ]
        },
        "applyPresetNonColor": {
          "type": "boolean"
        },
        "styleOverrides": {
          "allOf": [
            {
              "$ref": "#/definitions/UserStyleOverrides"
            }
          ]
        },
        "graphSettingsOverride": {
          "type": "object",
          "properties": {
            "direction": {
              "type": "string",
              "enum": [
                "vertical",
                "horizontal"
              ]
            },
            "baseline": {
              "type": "string",
              "enum": [
                "automatic",
                "manual",
                "hidden"
              ]
            },
            "baselineY": {
              "type": "number"
            },
            "barWidthRatio": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "groupGapRatio": {
              "type": "number",
              "minimum": 0
            },
            "seriesGapRatio": {
              "type": "number",
              "minimum": 0
            },
            "columnGapRatio": {
              "type": "number",
              "minimum": 0
            },
            "firstGapRatio": {
              "type": "number",
              "minimum": 0
            },
            "lastGapRatio": {
              "type": "number",
              "minimum": 0
            },
            "scatterAppearance": {
              "type": "string",
              "enum": [
                "standard",
                "classic",
                "expanded"
              ]
            },
            "missingValuePolicy": {
              "type": "string",
              "enum": [
                "gap",
                "connectAdjacent"
              ]
            },
            "lineOfIdentity": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineOfIdentityConfig"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "axesOverrides": {
          "allOf": [
            {
              "$ref": "#/definitions/AxesOverrides"
            }
          ]
        },
        "plotGeometry": {
          "type": "object",
          "properties": {
            "widthPt": {
              "type": [
                "number",
                "null"
              ]
            },
            "heightPt": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        "dataSetVisibility": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "pattern": "^(0|[1-9]\\d*)$"
          },
          "additionalProperties": {
            "type": "boolean"
          }
        },
        "elementActivation": {
          "allOf": [
            {
              "$ref": "#/definitions/ElementActivation"
            }
          ]
        },
        "legend": {
          "allOf": [
            {
              "$ref": "#/definitions/LegendConfig"
            }
          ]
        },
        "partsOfWholeBorders": {
          "allOf": [
            {
              "$ref": "#/definitions/PartsOfWholeBorders"
            }
          ]
        }
      },
      "required": [
        "variantId"
      ],
      "additionalProperties": false
    },
    "GraphVariantId": {
      "type": "string",
      "enum": [
        "scatter",
        "line",
        "xy-line-only",
        "xy-spikes",
        "xy-area",
        "xy-points-error",
        "xy-points-line-error",
        "xy-individual-replicates",
        "xy-repeated-measures",
        "xy-replicates-mean-line",
        "xy-line-error",
        "xy-spikes-error",
        "xy-area-error",
        "column-scatter-only",
        "scatter-bar",
        "column-before-after",
        "column-floating-bars",
        "column-box-whiskers",
        "column-violin",
        "bar",
        "column-mean-error",
        "column-mean-error-connected",
        "grouped-interleaved-scatter",
        "grouped-separated-scatter",
        "grouped-interleaved-scatter-bar",
        "grouped-separated-scatter-bar",
        "grouped-superimposed-scatter",
        "grouped-rm-across-row",
        "grouped-rm-in-subcol",
        "grouped-interleaved-bars",
        "grouped-separated-bars",
        "grouped-stacked-bars",
        "grouped-interleaved-symbols",
        "grouped-separated-symbols",
        "grouped-superimposed-symbols",
        "grouped-superimposed-symbols-line",
        "grouped-interleaved-low-high",
        "grouped-separated-low-high",
        "grouped-interleaved-box",
        "grouped-separated-box",
        "grouped-interleaved-violin",
        "grouped-separated-violin",
        "grouped-heat-map",
        "contingency-interleaved-bar",
        "contingency-separated-bar",
        "contingency-stacked-bar",
        "nested-scatter",
        "nested-scatter-bar",
        "nested-bar",
        "nested-low-high",
        "nested-box",
        "nested-violin",
        "survival-staircase-ticks",
        "survival-point-to-point",
        "survival-point-to-point-eb",
        "survival-staircase-points",
        "parts-pie",
        "parts-donut",
        "parts-slices",
        "parts-dot-plot",
        "mv-bubble",
        "mv-scatter",
        "mv-volcano",
        "mv-forest"
      ],
      "description": "Graph variant id from the PivoGraph graph registry."
    },
    "PlotConfig": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "xy"
            },
            "options": {
              "type": "object",
              "properties": {
                "center": {
                  "type": "string",
                  "enum": [
                    "mean",
                    "meanError",
                    "geoMean",
                    "geoMeanError",
                    "median",
                    "medianError",
                    "eachReplicate"
                  ]
                },
                "error": {
                  "type": "string",
                  "enum": [
                    "sd",
                    "sem",
                    "ci95",
                    "range",
                    "geoCi95",
                    "geoSd"
                  ]
                },
                "connectCenter": {
                  "type": "string",
                  "enum": [
                    "mean",
                    "median"
                  ]
                },
                "seriesStackOrder": {
                  "type": "string",
                  "enum": [
                    "earlierOnTop",
                    "laterOnTop"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "column"
            },
            "options": {
              "type": "object",
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "mean",
                    "meanWithSd",
                    "meanWithSem",
                    "meanWithCi95",
                    "meanWithRange",
                    "geoMean",
                    "geoMeanWithCi95",
                    "geoMeanWithGeoSd",
                    "median",
                    "medianWithCi95",
                    "medianWithRange",
                    "medianWithIqr",
                    "symbolsAndLines",
                    "arrows",
                    "lineAtMean",
                    "lineAtMedian",
                    "noLine",
                    "minToMax",
                    "tukey",
                    "p10_90",
                    "p5_95",
                    "p2_5_97_5",
                    "p1_99",
                    "violinOnly"
                  ]
                },
                "flipXY": {
                  "type": "boolean"
                },
                "showTruncatedViolin": {
                  "type": "boolean"
                },
                "pointLayout": {
                  "type": "string",
                  "enum": [
                    "scatter",
                    "aligned"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "grouped"
            },
            "options": {
              "$ref": "#/definitions/GroupedPlotOptions"
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "contingency"
            },
            "options": {
              "type": "object",
              "properties": {
                "flipXY": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "nested"
            },
            "options": {
              "type": "object",
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "mean",
                    "meanWithSd",
                    "meanWithSem",
                    "meanWithCi95",
                    "meanWithRange",
                    "geoMean",
                    "geoMeanWithCi95",
                    "geoMeanWithGeoSd",
                    "median",
                    "medianWithCi95",
                    "medianWithRange",
                    "medianWithIqr",
                    "symbolsAndLines",
                    "arrows",
                    "lineAtMean",
                    "lineAtMedian",
                    "noLine",
                    "minToMax",
                    "tukey",
                    "p10_90",
                    "p5_95",
                    "p2_5_97_5",
                    "p1_99",
                    "violinOnly"
                  ]
                },
                "showTruncatedViolin": {
                  "type": "boolean"
                },
                "pointLayout": {
                  "type": "string",
                  "enum": [
                    "scatter",
                    "aligned"
                  ]
                },
                "hideOuterFrame": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "survival"
            },
            "options": {
              "type": "object",
              "properties": {
                "outcome": {
                  "type": "string",
                  "enum": [
                    "survival",
                    "death"
                  ]
                },
                "showAs": {
                  "type": "string",
                  "enum": [
                    "fractions",
                    "percents"
                  ]
                },
                "plotSymbolsAt": {
                  "type": "string",
                  "enum": [
                    "all",
                    "censoredOnly"
                  ]
                },
                "errorBars": {
                  "type": "string",
                  "enum": [
                    "none",
                    "se",
                    "ci95"
                  ]
                },
                "showNumberAtRisk": {
                  "type": "boolean"
                },
                "showCumulativeCensored": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "partsOfWhole"
            },
            "options": {
              "type": "object",
              "properties": {
                "dataSetIndex": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "orientation": {
                  "type": "string",
                  "enum": [
                    "horizontal",
                    "vertical"
                  ]
                },
                "reverseOrder": {
                  "type": "boolean"
                },
                "donutHoleRatio": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "graphicSizePt": {
                  "type": "number",
                  "minimum": 0
                },
                "showTotal": {
                  "type": "boolean"
                },
                "totalPrefix": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 300
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalSuffix": {
                  "type": "string",
                  "maxLength": 300
                },
                "totalFontSize": {
                  "type": "number",
                  "minimum": 0
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "family": {
              "type": "string",
              "const": "multipleVariables"
            },
            "options": {
              "$ref": "#/definitions/MultipleVariablesPlotOptions"
            }
          },
          "required": [
            "family",
            "options"
          ],
          "additionalProperties": false
        }
      ]
    },
    "GroupedPlotOptions": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "mean",
            "meanWithSd",
            "meanWithSem",
            "meanWithCi95",
            "meanWithRange",
            "geoMean",
            "geoMeanWithCi95",
            "geoMeanWithGeoSd",
            "median",
            "medianWithCi95",
            "medianWithRange",
            "medianWithIqr",
            "grandMean",
            "grandMedian",
            "symbolsAndLines",
            "arrows",
            "aligned",
            "lineAtMean",
            "lineAtMedian",
            "noLine",
            "minToMax",
            "tukey",
            "p10_90",
            "p5_95",
            "p2_5_97_5",
            "p1_99",
            "violinOnly"
          ]
        },
        "flipXY": {
          "type": "boolean"
        },
        "showTruncatedViolin": {
          "type": "boolean"
        },
        "pointLayout": {
          "type": "string",
          "enum": [
            "scatter",
            "aligned"
          ]
        },
        "seriesAlign": {
          "type": "string",
          "enum": [
            "aligned",
            "staggered"
          ]
        },
        "heatMap": {
          "type": "object",
          "properties": {
            "aggregation": {
              "type": "string",
              "enum": [
                "mean",
                "median"
              ]
            },
            "colormap": {
              "type": "string",
              "enum": [
                "sequential",
                "diverging",
                "grayscale"
              ]
            },
            "reverse": {
              "type": "boolean"
            },
            "domainMin": {
              "type": [
                "number",
                "null"
              ]
            },
            "domainMax": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "MultipleVariablesPlotOptions": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "bubble",
            "scatter",
            "volcano",
            "forest"
          ]
        },
        "mapping": {
          "$ref": "#/definitions/VariableMapping"
        },
        "maxBubbleSize": {
          "type": "number",
          "minimum": 0
        },
        "volcano": {
          "type": "object",
          "properties": {
            "log2FcCutoff": {
              "type": "number",
              "minimum": 0
            },
            "pCutoff": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 1
            },
            "yIsNegLog10": {
              "type": "boolean"
            },
            "maxLabels": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "additionalProperties": false
        },
        "forest": {
          "type": "object",
          "properties": {
            "referenceValue": {
              "type": "number"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "kind",
        "mapping"
      ],
      "additionalProperties": false
    },
    "VariableMapping": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "y": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "size": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "color": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "shape": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "label": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "lower": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "upper": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "x"
      ],
      "additionalProperties": false
    },
    "ThemePresetId": {
      "type": "string",
      "enum": [
        "modern",
        "classic",
        "floral",
        "starry"
      ],
      "description": "Built-in theme preset id."
    },
    "UserStyleOverrides": {
      "type": "object",
      "properties": {
        "global": {
          "allOf": [
            {
              "$ref": "#/definitions/ElementOverrideSet"
            }
          ]
        },
        "perDataSet": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/definitions/ElementOverrideSet"
          }
        },
        "perPoint": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "pattern": "^(0|[1-9]\\d*)$"
            },
            "additionalProperties": {
              "$ref": "#/definitions/ElementOverrideSet"
            }
          }
        }
      },
      "additionalProperties": false
    },
    "ElementOverrideSet": {
      "type": "object",
      "properties": {
        "bar": {
          "type": "object",
          "properties": {
            "fill": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderWidth": {
              "type": "number",
              "minimum": 0
            },
            "fillPattern": {
              "allOf": [
                {
                  "$ref": "#/definitions/PatternRef"
                }
              ]
            },
            "patternColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "showMeanAsPlus": {
              "type": "boolean"
            },
            "meanSymbolShape": {
              "allOf": [
                {
                  "$ref": "#/definitions/SymbolShape"
                }
              ]
            },
            "whiskerCapStyle": {
              "type": "string",
              "enum": [
                "wideT",
                "narrowT",
                "I"
              ]
            }
          },
          "additionalProperties": false
        },
        "violin": {
          "type": "object",
          "properties": {
            "fill": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderWidth": {
              "type": "number",
              "minimum": 0
            },
            "fillPattern": {
              "allOf": [
                {
                  "$ref": "#/definitions/PatternRef"
                }
              ]
            },
            "patternColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "smoothing": {
              "type": "string",
              "enum": [
                "low",
                "medium",
                "high"
              ]
            }
          },
          "additionalProperties": false
        },
        "symbol": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "shape": {
              "allOf": [
                {
                  "$ref": "#/definitions/SymbolShapeRef"
                }
              ]
            },
            "size": {
              "type": "number",
              "minimum": 0
            },
            "borderColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderThickness": {
              "type": "number",
              "minimum": 0
            },
            "symbolVisibility": {
              "type": "string",
              "enum": [
                "all",
                "censoredOnly"
              ]
            }
          },
          "additionalProperties": false
        },
        "errorBar": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "capStyle": {
              "type": "string",
              "enum": [
                "wideT",
                "narrowT",
                "I"
              ]
            },
            "direction": {
              "type": "string",
              "enum": [
                "above",
                "below",
                "both"
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            }
          },
          "additionalProperties": false
        },
        "summaryLine": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "line": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            },
            "drawOrder": {
              "type": "string",
              "enum": [
                "underneathErrorBars",
                "onTopOfErrorBars"
              ]
            },
            "connect": {
              "type": "string",
              "enum": [
                "straight",
                "staircase",
                "spline"
              ]
            },
            "startAtOrigin": {
              "type": "boolean"
            },
            "leaveGapAtSymbols": {
              "type": "boolean"
            },
            "gapAtAxisBreaks": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "quartile": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "median": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            },
            "drawOrder": {
              "type": "string",
              "enum": [
                "underneath",
                "onTop"
              ]
            }
          },
          "additionalProperties": false
        },
        "barsSpikesDroplines": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "widthRatio": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "borderColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderThickness": {
              "type": "number",
              "minimum": 0
            },
            "fillPattern": {
              "allOf": [
                {
                  "$ref": "#/definitions/PatternRef"
                }
              ]
            },
            "patternColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "beginAtY": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "areaFill": {
          "type": "object",
          "properties": {
            "fillColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "position": {
              "type": "string",
              "enum": [
                "belowCurve",
                "aboveCurve"
              ]
            },
            "fillPattern": {
              "allOf": [
                {
                  "$ref": "#/definitions/PatternRef"
                }
              ]
            },
            "patternColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "valueAnnotation": {
          "allOf": [
            {
              "$ref": "#/definitions/ValueAnnotationStylePatch"
            }
          ]
        },
        "heatCell": {
          "type": "object",
          "properties": {
            "borderColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "borderWidth": {
              "type": "number",
              "minimum": 0
            },
            "missingMark": {
              "type": "string",
              "enum": [
                "none",
                "cross"
              ]
            }
          },
          "additionalProperties": false
        },
        "colorScaleBar": {
          "type": "object",
          "properties": {
            "widthPt": {
              "type": "number",
              "minimum": 0
            },
            "lengthRatio": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "tickCount": {
              "type": "integer",
              "minimum": 2,
              "maximum": 11
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "cellValueLabel": {
          "type": "object",
          "properties": {
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "decimals": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "automatic"
                },
                {
                  "type": "number",
                  "enum": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ]
                }
              ]
            },
            "autoContrast": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "curve": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "confidenceBand": {
          "type": "object",
          "properties": {
            "display": {
              "type": "string",
              "enum": [
                "fill",
                "lines"
              ]
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "fillOpacity": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "pointLabel": {
          "type": "object",
          "properties": {
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "placement": {
              "type": "string",
              "enum": [
                "above",
                "below",
                "right",
                "left"
              ]
            },
            "offset": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "referenceLine": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "ColorRef": {
      "anyOf": [
        {
          "type": "string",
          "const": "theme"
        },
        {
          "$ref": "#/definitions/ThemeColor"
        }
      ]
    },
    "ThemeColor": {
      "type": "object",
      "properties": {
        "hex": {
          "$ref": "#/definitions/HexColor"
        },
        "alpha": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "hex"
      ],
      "additionalProperties": false
    },
    "HexColor": {
      "type": "string",
      "pattern": "^#[\\s\\S]{0,}$",
      "description": "Hex color: #rgb or #rrggbb. Transparency goes in the separate `alpha` field."
    },
    "PatternRef": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "none",
            "diagonalLeft",
            "diagonalRight",
            "horizontal",
            "vertical",
            "crosshatch",
            "checkerboard"
          ]
        },
        {
          "type": "string",
          "const": "theme"
        }
      ]
    },
    "SymbolShape": {
      "type": "string",
      "enum": [
        "circle",
        "square",
        "triangleUp",
        "triangleDown",
        "diamond",
        "star",
        "circleBordered",
        "squareBordered",
        "triangleUpBordered",
        "triangleDownBordered",
        "diamondBordered",
        "starBordered",
        "circleDot",
        "squareDot",
        "hexagonDot",
        "circleCross",
        "squareCross",
        "hexagonDiagonals",
        "asterisk",
        "hash",
        "plus",
        "cross",
        "male",
        "female"
      ]
    },
    "SymbolShapeRef": {
      "anyOf": [
        {
          "$ref": "#/definitions/SymbolShape"
        },
        {
          "type": "string",
          "const": "auto"
        }
      ]
    },
    "LineDashStyle": {
      "type": "string",
      "enum": [
        "solid",
        "dashed",
        "dotted",
        "dashDot"
      ]
    },
    "ValueAnnotationStylePatch": {
      "type": "object",
      "properties": {
        "aboveBarAndErrorBar": {
          "type": "object",
          "properties": {
            "show": {
              "type": "string",
              "enum": [
                "nothing",
                "plottedValue",
                "sampleSize"
              ]
            },
            "direction": {
              "type": "string",
              "enum": [
                "vertical",
                "horizontal"
              ]
            },
            "format": {
              "type": "string",
              "enum": [
                "decimal",
                "scientific"
              ]
            },
            "decimals": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "automatic"
                },
                {
                  "type": "number",
                  "enum": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ]
                }
              ]
            },
            "thousands": {
              "type": "string",
              "enum": [
                "none",
                "comma",
                "space",
                "apostrophe"
              ]
            },
            "fontFamily": {
              "type": "string",
              "maxLength": 300
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "withinBarTop": {
          "type": "object",
          "properties": {
            "show": {
              "type": "string",
              "enum": [
                "nothing",
                "plottedValue",
                "sampleSize"
              ]
            },
            "direction": {
              "type": "string",
              "enum": [
                "vertical",
                "horizontal"
              ]
            },
            "format": {
              "type": "string",
              "enum": [
                "decimal",
                "scientific"
              ]
            },
            "decimals": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "automatic"
                },
                {
                  "type": "number",
                  "enum": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ]
                }
              ]
            },
            "thousands": {
              "type": "string",
              "enum": [
                "none",
                "comma",
                "space",
                "apostrophe"
              ]
            },
            "fontFamily": {
              "type": "string",
              "maxLength": 300
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "withinBarBottom": {
          "type": "object",
          "properties": {
            "show": {
              "type": "string",
              "enum": [
                "nothing",
                "plottedValue",
                "sampleSize"
              ]
            },
            "direction": {
              "type": "string",
              "enum": [
                "vertical",
                "horizontal"
              ]
            },
            "format": {
              "type": "string",
              "enum": [
                "decimal",
                "scientific"
              ]
            },
            "decimals": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "automatic"
                },
                {
                  "type": "number",
                  "enum": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ]
                }
              ]
            },
            "thousands": {
              "type": "string",
              "enum": [
                "none",
                "comma",
                "space",
                "apostrophe"
              ]
            },
            "fontFamily": {
              "type": "string",
              "maxLength": 300
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "LineOfIdentityConfig": {
      "type": "object",
      "properties": {
        "show": {
          "type": "boolean"
        },
        "color": {
          "$ref": "#/definitions/ColorRef"
        },
        "thickness": {
          "type": "number",
          "minimum": 0
        },
        "dashStyle": {
          "$ref": "#/definitions/LineDashStyle"
        }
      },
      "required": [
        "show",
        "color",
        "thickness",
        "dashStyle"
      ],
      "additionalProperties": false
    },
    "AxesOverrides": {
      "type": "object",
      "properties": {
        "frameAndOrigin": {
          "type": "object",
          "properties": {
            "originMode": {
              "type": "string",
              "enum": [
                "automatic",
                "lowerLeft",
                "upperLeft",
                "lowerRight",
                "upperRight",
                "custom"
              ]
            },
            "originX": {
              "type": "number"
            },
            "originY": {
              "type": "number"
            },
            "shape": {
              "type": "string",
              "enum": [
                "autoWide",
                "autoTall",
                "wide",
                "tall",
                "square",
                "custom"
              ]
            },
            "frameStyle": {
              "type": "string",
              "enum": [
                "noFrame",
                "offsetXY",
                "plainFrame",
                "frameWithTicksMirrored",
                "frameWithTicksInward"
              ]
            },
            "axisOffsetPt": {
              "type": "number",
              "minimum": 0
            },
            "axisOffsetYPt": {
              "type": "number",
              "minimum": 0
            },
            "connectOffsetAxes": {
              "type": "boolean"
            },
            "segmentXAxisByCluster": {
              "type": "boolean"
            },
            "hideAxes": {
              "type": "string",
              "enum": [
                "showBoth",
                "hideX",
                "hideY",
                "hideBoth"
              ]
            },
            "axisThickness": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "axisColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ColorRef"
                }
              ]
            },
            "majorGrid": {
              "type": "object",
              "properties": {
                "show": {
                  "type": "boolean"
                },
                "color": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/ColorRef"
                    }
                  ]
                },
                "thickness": {
                  "type": "number",
                  "minimum": 0
                },
                "dashStyle": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/LineDashStyle"
                    }
                  ]
                }
              },
              "additionalProperties": false
            },
            "minorGrid": {
              "type": "object",
              "properties": {
                "show": {
                  "type": "boolean"
                },
                "color": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/ColorRef"
                    }
                  ]
                },
                "thickness": {
                  "type": "number",
                  "minimum": 0
                },
                "dashStyle": {
                  "allOf": [
                    {
                      "$ref": "#/definitions/LineDashStyle"
                    }
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "xCategorical": {
          "type": "object",
          "properties": {
            "labelRotation": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "string",
                  "const": "stacked"
                },
                {
                  "type": "number"
                }
              ]
            },
            "labelFontSize": {
              "type": "number",
              "minimum": 0
            },
            "ticks": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string",
                  "enum": [
                    "none",
                    "left",
                    "right",
                    "up",
                    "down",
                    "both"
                  ]
                },
                "length": {
                  "type": "string",
                  "enum": [
                    "short",
                    "normal",
                    "long"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "xContinuous": {
          "type": "object",
          "properties": {
            "rangeMin": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "rangeMax": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "majorTickInterval": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "startingAt": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "scale": {
              "type": "string",
              "enum": [
                "linear",
                "log10",
                "log2",
                "ln"
              ]
            },
            "additionalTicks": {
              "maxItems": 200,
              "type": "array",
              "items": {
                "$ref": "#/definitions/AdditionalTick"
              }
            },
            "ticks": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string",
                  "enum": [
                    "none",
                    "left",
                    "right",
                    "up",
                    "down",
                    "both"
                  ]
                },
                "length": {
                  "type": "string",
                  "enum": [
                    "short",
                    "normal",
                    "long"
                  ]
                }
              },
              "additionalProperties": false
            },
            "numberFormat": {
              "type": "object",
              "properties": {
                "style": {
                  "type": "string",
                  "enum": [
                    "decimal",
                    "scientific",
                    "antilog",
                    "rowNumbers"
                  ]
                },
                "decimals": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "auto"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "thousandsSeparator": {
                  "type": "boolean"
                },
                "prefix": {
                  "type": "string",
                  "maxLength": 300
                },
                "suffix": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "leftY": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "rangeMin": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "rangeMax": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "majorTickInterval": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "startingAt": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "minorTicks": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "scale": {
              "type": "string",
              "enum": [
                "linear",
                "log10",
                "log2",
                "ln"
              ]
            },
            "additionalTicks": {
              "maxItems": 200,
              "type": "array",
              "items": {
                "$ref": "#/definitions/AdditionalTick"
              }
            },
            "ticks": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string",
                  "enum": [
                    "none",
                    "left",
                    "right",
                    "up",
                    "down",
                    "both"
                  ]
                },
                "length": {
                  "type": "string",
                  "enum": [
                    "short",
                    "normal",
                    "long"
                  ]
                }
              },
              "additionalProperties": false
            },
            "numberFormat": {
              "type": "object",
              "properties": {
                "style": {
                  "type": "string",
                  "enum": [
                    "decimal",
                    "scientific",
                    "antilog",
                    "rowNumbers"
                  ]
                },
                "decimals": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "auto"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "thousandsSeparator": {
                  "type": "boolean"
                },
                "prefix": {
                  "type": "string",
                  "maxLength": 300
                },
                "suffix": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "rightY": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "rangeMin": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "rangeMax": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "majorTickInterval": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "startingAt": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "auto"
                },
                {
                  "type": "number"
                }
              ]
            },
            "minorTicks": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "scale": {
              "type": "string",
              "enum": [
                "linear",
                "log10",
                "log2",
                "ln"
              ]
            },
            "additionalTicks": {
              "maxItems": 200,
              "type": "array",
              "items": {
                "$ref": "#/definitions/AdditionalTick"
              }
            },
            "ticks": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string",
                  "enum": [
                    "none",
                    "left",
                    "right",
                    "up",
                    "down",
                    "both"
                  ]
                },
                "length": {
                  "type": "string",
                  "enum": [
                    "short",
                    "normal",
                    "long"
                  ]
                }
              },
              "additionalProperties": false
            },
            "numberFormat": {
              "type": "object",
              "properties": {
                "style": {
                  "type": "string",
                  "enum": [
                    "decimal",
                    "scientific",
                    "antilog",
                    "rowNumbers"
                  ]
                },
                "decimals": {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "auto"
                    },
                    {
                      "type": "number"
                    }
                  ]
                },
                "thousandsSeparator": {
                  "type": "boolean"
                },
                "prefix": {
                  "type": "string",
                  "maxLength": 300
                },
                "suffix": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "titlesAndFonts": {
          "type": "object",
          "properties": {
            "graphTitle": {
              "type": "object",
              "properties": {
                "show": {
                  "type": "boolean"
                },
                "distance": {
                  "type": "number"
                },
                "rotation": {
                  "type": "string",
                  "enum": [
                    "horizontal",
                    "verticalUp",
                    "verticalDown"
                  ]
                },
                "font": {
                  "type": "object",
                  "properties": {
                    "family": {
                      "type": "string",
                      "maxLength": 300
                    },
                    "size": {
                      "type": "number",
                      "minimum": 0
                    },
                    "bold": {
                      "type": "boolean"
                    },
                    "italic": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            "xAxisTitle": {
              "type": "object",
              "properties": {
                "show": {
                  "type": "boolean"
                },
                "distance": {
                  "type": "number"
                },
                "rotation": {
                  "type": "string",
                  "enum": [
                    "horizontal",
                    "verticalUp",
                    "verticalDown"
                  ]
                },
                "font": {
                  "type": "object",
                  "properties": {
                    "family": {
                      "type": "string",
                      "maxLength": 300
                    },
                    "size": {
                      "type": "number",
                      "minimum": 0
                    },
                    "bold": {
                      "type": "boolean"
                    },
                    "italic": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            "yAxisTitle": {
              "type": "object",
              "properties": {
                "show": {
                  "type": "boolean"
                },
                "distance": {
                  "type": "number"
                },
                "rotation": {
                  "type": "string",
                  "enum": [
                    "horizontal",
                    "verticalUp",
                    "verticalDown"
                  ]
                },
                "font": {
                  "type": "object",
                  "properties": {
                    "family": {
                      "type": "string",
                      "maxLength": 300
                    },
                    "size": {
                      "type": "number",
                      "minimum": 0
                    },
                    "bold": {
                      "type": "boolean"
                    },
                    "italic": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            "tickLabelFont": {
              "type": "object",
              "properties": {
                "family": {
                  "type": "string",
                  "maxLength": 300
                },
                "size": {
                  "type": "number",
                  "minimum": 0
                },
                "bold": {
                  "type": "boolean"
                },
                "italic": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "AdditionalTick": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "description": "Opaque identifier; must be unique within its scope in the document."
        },
        "value": {
          "type": "number"
        },
        "showTick": {
          "type": "boolean"
        },
        "showLine": {
          "type": "boolean"
        },
        "lineStyle": {
          "$ref": "#/definitions/LineDashStyle"
        },
        "label": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "id",
        "value",
        "showTick",
        "showLine",
        "lineStyle"
      ],
      "additionalProperties": false
    },
    "ElementActivation": {
      "type": "object",
      "properties": {
        "global": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "enum": [
              "bar",
              "violin",
              "symbol",
              "errorBar",
              "summaryLine",
              "line",
              "quartile",
              "median",
              "barsSpikesDroplines",
              "areaFill",
              "heatCell",
              "colorScaleBar",
              "cellValueLabel",
              "curve",
              "confidenceBand",
              "pointLabel",
              "referenceLine",
              "partsOuterBorder",
              "partsInnerBorder"
            ]
          },
          "additionalProperties": {
            "type": "boolean"
          }
        },
        "perDataSet": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "pattern": "^(0|[1-9]\\d*)$"
          },
          "additionalProperties": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "bar",
                "violin",
                "symbol",
                "errorBar",
                "summaryLine",
                "line",
                "quartile",
                "median",
                "barsSpikesDroplines",
                "areaFill",
                "heatCell",
                "colorScaleBar",
                "cellValueLabel",
                "curve",
                "confidenceBand",
                "pointLabel",
                "referenceLine",
                "partsOuterBorder",
                "partsInnerBorder"
              ]
            },
            "additionalProperties": {
              "type": "boolean"
            }
          }
        },
        "graph": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "enum": [
              "bar",
              "violin",
              "symbol",
              "errorBar",
              "summaryLine",
              "line",
              "quartile",
              "median",
              "barsSpikesDroplines",
              "areaFill",
              "heatCell",
              "colorScaleBar",
              "cellValueLabel",
              "curve",
              "confidenceBand",
              "pointLabel",
              "referenceLine",
              "partsOuterBorder",
              "partsInnerBorder"
            ]
          },
          "additionalProperties": {
            "type": "boolean"
          }
        }
      },
      "additionalProperties": false
    },
    "LegendConfig": {
      "type": "object",
      "properties": {
        "visibility": {
          "type": "string",
          "enum": [
            "auto",
            "shown",
            "hidden"
          ]
        },
        "dx": {
          "type": "number"
        },
        "dy": {
          "type": "number"
        },
        "fontFamily": {
          "type": "string",
          "maxLength": 300
        },
        "fontSize": {
          "type": "number",
          "minimum": 0
        },
        "textColor": {
          "allOf": [
            {
              "$ref": "#/definitions/ThemeColor"
            }
          ]
        },
        "bold": {
          "type": "boolean"
        },
        "italic": {
          "type": "boolean"
        },
        "keyScale": {
          "type": "number",
          "minimum": 0
        },
        "keyTextGap": {
          "type": "number"
        },
        "itemGap": {
          "type": "number"
        },
        "orientation": {
          "type": "string",
          "enum": [
            "vertical",
            "horizontal"
          ]
        },
        "rotation": {
          "type": "number"
        },
        "ungrouped": {
          "type": "boolean"
        },
        "sampleMode": {
          "type": "string",
          "enum": [
            "symbol",
            "symbolLine",
            "line",
            "longLine",
            "symbolLongLine"
          ]
        },
        "itemOverrides": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/definitions/LegendItemOverride"
          }
        },
        "partsOfWhole": {
          "type": "object",
          "properties": {
            "label": {
              "type": "boolean"
            },
            "value": {
              "type": "boolean"
            },
            "percentage": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "LegendItemOverride": {
      "type": "object",
      "properties": {
        "visible": {
          "type": "boolean"
        },
        "label": {
          "type": "string",
          "maxLength": 200
        },
        "sampleMode": {
          "type": "string",
          "enum": [
            "symbol",
            "symbolLine",
            "line",
            "longLine",
            "symbolLongLine"
          ]
        },
        "dx": {
          "type": "number"
        },
        "dy": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "PartsOfWholeBorders": {
      "type": "object",
      "properties": {
        "outer": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ThemeColor"
                }
              ]
            },
            "thicknessPt": {
              "type": "number",
              "minimum": 0
            }
          },
          "additionalProperties": false
        },
        "inner": {
          "type": "object",
          "properties": {
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ThemeColor"
                }
              ]
            },
            "thicknessPt": {
              "type": "number",
              "minimum": 0
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "AnalysisInstance": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "method": {
              "type": "string",
              "const": "ttest"
            },
            "params": {
              "type": "object",
              "properties": {
                "groupA": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 200
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "groupB": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 200
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "design": {
                  "type": "string",
                  "enum": [
                    "unpaired",
                    "paired"
                  ]
                },
                "variance": {
                  "type": "string",
                  "enum": [
                    "welch",
                    "equal"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "method"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "method": {
              "type": "string",
              "const": "frequencyDistribution"
            },
            "params": {
              "type": "object",
              "properties": {
                "binWidth": {
                  "anyOf": [
                    {
                      "type": "number",
                      "exclusiveMinimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "binStart": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "output": {
                  "type": "string",
                  "enum": [
                    "count",
                    "fraction",
                    "percent"
                  ]
                },
                "cumulative": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "method"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "method": {
              "type": "string",
              "const": "linearRegression"
            },
            "params": {
              "type": "object",
              "properties": {
                "confidenceLevel": {
                  "type": "number",
                  "enum": [
                    90,
                    95,
                    99
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "method"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "method": {
              "type": "string",
              "const": "nonlinearRegression"
            },
            "params": {
              "type": "object",
              "properties": {
                "model": {
                  "type": "string",
                  "enum": [
                    "logX",
                    "linearX"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "method"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "method": {
              "type": "string",
              "const": "correlationMatrix"
            },
            "params": {
              "type": "object",
              "properties": {
                "method": {
                  "type": "string",
                  "enum": [
                    "pearson",
                    "spearman"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "method"
          ],
          "additionalProperties": false
        }
      ]
    },
    "Annotation": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "type": {
              "type": "string",
              "const": "bracket"
            },
            "left": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "group"
                    },
                    "groupIndex": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "kind",
                    "groupIndex"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "free"
                    },
                    "x": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "kind",
                    "x"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "right": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "group"
                    },
                    "groupIndex": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "kind",
                    "groupIndex"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "const": "free"
                    },
                    "x": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "kind",
                    "x"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "y": {
              "type": "number"
            },
            "yOffsetAboveBars": {
              "type": "number"
            },
            "text": {
              "type": "string",
              "maxLength": 5000
            },
            "leftFootLen": {
              "type": "number"
            },
            "rightFootLen": {
              "type": "number"
            },
            "lineWidth": {
              "type": "number",
              "minimum": 0
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "textColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ThemeColor"
                }
              ]
            }
          },
          "required": [
            "type",
            "left",
            "right",
            "y",
            "text"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "type": {
              "type": "string",
              "const": "text"
            },
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "text": {
              "type": "string",
              "maxLength": 5000
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "fontFamily": {
              "type": "string",
              "maxLength": 300
            },
            "color": {
              "allOf": [
                {
                  "$ref": "#/definitions/ThemeColor"
                }
              ]
            },
            "bold": {
              "type": "boolean"
            },
            "italic": {
              "type": "boolean"
            },
            "rotation": {
              "type": "number"
            }
          },
          "required": [
            "type",
            "x",
            "y",
            "text"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Opaque identifier; must be unique within its scope in the document."
            },
            "type": {
              "type": "string",
              "const": "shape"
            },
            "shape": {
              "type": "string",
              "enum": [
                "circle",
                "ellipse",
                "arc",
                "square",
                "rect",
                "roundRect",
                "cornerBL",
                "cornerBR",
                "cornerArrowUp",
                "cornerArrowRight",
                "cornerArrowBoth",
                "line",
                "arrow",
                "doubleArrow",
                "lineCaps",
                "railUp",
                "lineCapEnd",
                "zigzag",
                "bracketRight",
                "bracketLeft",
                "bracketUp",
                "bracketDown"
              ]
            },
            "x1": {
              "type": "number"
            },
            "y1": {
              "type": "number"
            },
            "x2": {
              "type": "number"
            },
            "y2": {
              "type": "number"
            },
            "x3": {
              "type": "number"
            },
            "y3": {
              "type": "number"
            },
            "lineWidth": {
              "type": "number",
              "minimum": 0
            },
            "dashStyle": {
              "allOf": [
                {
                  "$ref": "#/definitions/LineDashStyle"
                }
              ]
            },
            "lineColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ThemeColor"
                }
              ]
            },
            "text": {
              "type": "string",
              "maxLength": 5000
            },
            "bold": {
              "type": "boolean"
            },
            "italic": {
              "type": "boolean"
            },
            "textRotation": {
              "type": "number"
            },
            "labelSide": {
              "type": "string",
              "enum": [
                "primary",
                "opposite"
              ]
            },
            "textGap": {
              "type": "number"
            },
            "arrowSize": {
              "type": "string",
              "enum": [
                "small",
                "medium",
                "large"
              ]
            },
            "fontSize": {
              "type": "number",
              "minimum": 0
            },
            "fontFamily": {
              "type": "string",
              "maxLength": 300
            },
            "textColor": {
              "allOf": [
                {
                  "$ref": "#/definitions/ThemeColor"
                }
              ]
            }
          },
          "required": [
            "type",
            "shape",
            "x1",
            "y1",
            "x2",
            "y2"
          ],
          "additionalProperties": false
        }
      ]
    },
    "TitlesState": {
      "type": "object",
      "properties": {
        "graph": {
          "allOf": [
            {
              "$ref": "#/definitions/TitleState"
            }
          ]
        },
        "x": {
          "allOf": [
            {
              "$ref": "#/definitions/TitleState"
            }
          ]
        },
        "y": {
          "allOf": [
            {
              "$ref": "#/definitions/TitleState"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "TitleState": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000
        },
        "dx": {
          "type": "number"
        },
        "dy": {
          "type": "number"
        },
        "fontSize": {
          "type": "number",
          "minimum": 0
        },
        "fontFamily": {
          "type": "string",
          "maxLength": 300
        },
        "color": {
          "allOf": [
            {
              "$ref": "#/definitions/ThemeColor"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  }
}
