{
  "type": "object",
  "properties": {
    "showTagColumn": {
      "type": "boolean"
    },
    "hideHeader": {
      "type": "boolean"
    },
    "showSetpointColumn": {
      "type": "boolean"
    },
    "updateFrequency": {
      "type": "number"
    },
    "showTableTitles": {
      "type": "boolean"
    },
    "compactMode": {
      "type": "boolean"
    },
    "tableTitles": {
      "$ref": "#/definitions/ITableTitles"
    },
    "values": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/IDatasetSetpointValueProp"
      }
    },
    "backgroundColor": {
      "type": "object",
      "properties": {
        "dataset": {
          "type": "string"
        },
        "conditionalColors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "number"
              },
              "condition": {
                "enum": [
                  "eq",
                  "gt",
                  "gte",
                  "lt",
                  "lte",
                  "neq"
                ],
                "type": "string"
              },
              "opacity": {
                "type": "number"
              },
              "color": {
                "type": "string"
              }
            },
            "required": [
              "color",
              "value"
            ]
          }
        }
      },
      "required": [
        "conditionalColors",
        "dataset"
      ]
    },
    "id": {
      "type": "string"
    },
    "reportOptions": {
      "$ref": "#/definitions/ReportOptions"
    },
    "reportMode": {
      "type": "boolean"
    },
    "stateCb": {
      "type": "object"
    },
    "calendarType": {
      "const": "CALENDAR_445",
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "referenceTime": {
      "type": "string"
    },
    "instantFrom": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "instantTo": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "instantReferenceTime": {
      "$ref": "#/definitions/JSJoda.Instant"
    }
  },
  "required": [
    "values"
  ],
  "definitions": {
    "ITableTitles": {
      "type": "object",
      "properties": {
        "tagTitle": {
          "type": "string"
        },
        "datasetTitle": {
          "type": "string"
        },
        "datasetValueTitle": {
          "type": "string"
        },
        "setpointValueTitle": {
          "type": "string"
        }
      }
    },
    "IDatasetSetpointValueProp": {
      "type": "object",
      "properties": {
        "tag": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "dataset": {
          "type": "string"
        },
        "setpointDataset": {
          "type": "string"
        },
        "validation": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/IDatasetSetPointValidationProps"
          }
        },
        "highlightColor": {
          "$ref": "#/definitions/HighlightColor"
        }
      }
    },
    "IDatasetSetPointValidationProps": {
      "type": "object",
      "properties": {
        "difference": {
          "$ref": "#/definitions/ValidationDifference"
        },
        "diff": {
          "type": "number"
        },
        "highlightColor": {
          "$ref": "#/definitions/HighlightColor"
        }
      },
      "required": [
        "diff",
        "difference",
        "highlightColor"
      ]
    },
    "ValidationDifference": {
      "type": "string",
      "enum": [
        "PERCENT",
        "ABS"
      ]
    },
    "HighlightColor": {
      "type": "object",
      "properties": {
        "color": {
          "type": "string"
        },
        "bgColor": {
          "type": "string"
        }
      }
    },
    "ReportOptions": {
      "type": "object",
      "properties": {
        "fontSize": {
          "type": "string"
        }
      }
    },
    "JSJoda.Instant": {
      "type": "object"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}