{
  "type": "object",
  "properties": {
    "valueDataset": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "subtitle": {
      "type": "string"
    },
    "aggregationType": {
      "$ref": "#/definitions/AggregationOption"
    },
    "loadConf": {
      "type": "object",
      "properties": {
        "type": {
          "const": "Time",
          "type": "string"
        },
        "lead": {
          "type": "number"
        },
        "lag": {
          "type": "number"
        },
        "leadUnit": {
          "$ref": "#/definitions/Unit"
        },
        "lagUnit": {
          "$ref": "#/definitions/Unit"
        },
        "alignUnit": {
          "anyOf": [
            {
              "enum": [
                "DAYS",
                "HOURS",
                "MINUTES",
                "MONTHS",
                "SECONDS"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "alignUnit",
        "lag",
        "lagUnit",
        "leadUnit"
      ]
    },
    "comparisonPeriod": {
      "type": "string"
    },
    "dateRangeSelectType": {
      "type": "string"
    },
    "updateFrequency": {
      "type": "number"
    },
    "dateFrom": {
      "type": "string"
    },
    "dateTo": {
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "referenceTime": {
      "type": "string"
    },
    "theme": {
      "enum": [
        "dark",
        "light",
        "transparent"
      ],
      "type": "string"
    }
  },
  "required": [
    "aggregationType",
    "comparisonPeriod",
    "dateRangeSelectType",
    "loadConf",
    "valueDataset"
  ],
  "definitions": {
    "AggregationOption": {
      "type": "string",
      "enum": [
        "SUM",
        "AVG",
        "MIN",
        "MAX",
        "COUNT"
      ]
    },
    "Unit": {
      "enum": [
        "DAYS",
        "HOURS",
        "MINUTES",
        "MONTHS",
        "SECONDS"
      ],
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}