{
  "type": "object",
  "properties": {
    "year": {
      "$ref": "#/definitions/YearTypes"
    },
    "month": {
      "$ref": "#/definitions/MonthTypes"
    },
    "day": {
      "$ref": "#/definitions/DayTypes"
    },
    "displayWeekOfYear": {
      "type": "boolean"
    },
    "showFinishedWeek": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "reportOptions": {
      "$ref": "#/definitions/ReportOptions"
    },
    "reportMode": {
      "type": "boolean"
    },
    "stateCb": {
      "type": "object"
    },
    "calendarType": {
      "const": "CALENDAR_445",
      "type": "string"
    },
    "hideHeader": {
      "type": "boolean"
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "referenceTime": {
      "type": "string"
    },
    "instantFrom": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "instantTo": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "instantReferenceTime": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "theme": {
      "enum": [
        "dark",
        "light",
        "transparent"
      ],
      "type": "string"
    }
  },
  "required": [
    "day",
    "month",
    "year"
  ],
  "definitions": {
    "YearTypes": {
      "type": "object",
      "properties": {
        "show": {
          "type": "boolean"
        },
        "position": {
          "enum": [
            "end",
            "middle",
            "start"
          ],
          "type": "string"
        },
        "suffix": {
          "type": "string"
        }
      },
      "required": [
        "show"
      ]
    },
    "MonthTypes": {
      "type": "object",
      "properties": {
        "show": {
          "type": "boolean"
        },
        "position": {
          "enum": [
            "end",
            "middle",
            "start"
          ],
          "type": "string"
        },
        "displayType": {
          "enum": [
            "long",
            "number",
            "short"
          ],
          "type": "string"
        },
        "showFinishedMonth": {
          "type": "boolean"
        }
      },
      "required": [
        "show"
      ]
    },
    "DayTypes": {
      "type": "object",
      "properties": {
        "show": {
          "type": "boolean"
        },
        "position": {
          "enum": [
            "end",
            "middle",
            "start"
          ],
          "type": "string"
        }
      },
      "required": [
        "show"
      ]
    },
    "ReportOptions": {
      "type": "object",
      "properties": {
        "fontSize": {
          "type": "string"
        }
      }
    },
    "JSJoda.Instant": {
      "type": "object"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}