{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "description": "",
    "type": "object",
    "properties": {
        "options": {
            "type": "object",
            "properties": {
                "leftPanelEnabled": {
                    "type": "boolean"
                },
                "minWidthBreakPoint": {
                    "type": "number"
                },
                "pessimisticAccessControl": {
                    "type": "boolean"
                },
                "rightPanelEnabled": {
                    "type": "boolean"
                },
                "theme": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "leftPanelEnabled",
                "minWidthBreakPoint",
                "pessimisticAccessControl",
                "rightPanelEnabled",
                "theme"
            ]
        },
        "modules": {
            "type": "object",
            "properties": {
                "embedDialogue": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "embedTemplate": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "embedTemplate"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "customSize": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "height": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "instructions": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "width": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "customSize",
                                "height",
                                "instructions",
                                "title",
                                "width"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "footerPanel": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "download": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "embed": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "exitFullScreen": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "fullScreen": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "download",
                                "embed",
                                "exitFullScreen",
                                "fullScreen"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "genericDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "ok": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "ok"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "headerPanel": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "close": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "help": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "close",
                                "help"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "helpDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "text": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "text",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "mediaelementCenterPanel": {
                    "type": "object",
                    "properties": {
                        "defaultHeight": {
                            "type": "number"
                        },
                        "defaultWidth": {
                            "type": "number"
                        },
                        "content": {
                            "type": "object",
                            "properties": {},
                            "required": []
                        }
                    },
                    "required": [
                        "defaultHeight",
                        "defaultWidth",
                        "content"
                    ]
                },
                "moreInfoRightPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "panelAnimationDuration": {
                                    "type": "number"
                                },
                                "panelCollapsedWidth": {
                                    "type": "number"
                                },
                                "panelExpandedWidth": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "panelAnimationDuration",
                                "panelCollapsedWidth",
                                "panelExpandedWidth"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "collapse": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "collapseFull": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "expand": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "expandFull": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "holdingText": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "noData": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "collapse",
                                "collapseFull",
                                "expand",
                                "expandFull",
                                "holdingText",
                                "noData",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "treeViewLeftPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "elideCount": {
                                    "type": "number"
                                },
                                "galleryThumbHeight": {
                                    "type": "number"
                                },
                                "galleryThumbWidth": {
                                    "type": "number"
                                },
                                "oneColThumbHeight": {
                                    "type": "number"
                                },
                                "oneColThumbWidth": {
                                    "type": "number"
                                },
                                "pageModeEnabled": {
                                    "type": "boolean"
                                },
                                "panelAnimationDuration": {
                                    "type": "number"
                                },
                                "panelCollapsedWidth": {
                                    "type": "number"
                                },
                                "panelExpandedWidth": {
                                    "type": "number"
                                },
                                "panelOpen": {
                                    "type": "boolean"
                                },
                                "thumbsEnabled": {
                                    "type": "boolean"
                                },
                                "thumbsExtraHeight": {
                                    "type": "number"
                                },
                                "thumbsImageFadeInDuration": {
                                    "type": "number"
                                },
                                "thumbsLoadRange": {
                                    "type": "number"
                                },
                                "treeEnabled": {
                                    "type": "boolean"
                                },
                                "twoColThumbHeight": {
                                    "type": "number"
                                },
                                "twoColThumbWidth": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "elideCount",
                                "galleryThumbHeight",
                                "galleryThumbWidth",
                                "oneColThumbHeight",
                                "oneColThumbWidth",
                                "pageModeEnabled",
                                "panelAnimationDuration",
                                "panelCollapsedWidth",
                                "panelExpandedWidth",
                                "panelOpen",
                                "thumbsEnabled",
                                "thumbsExtraHeight",
                                "thumbsImageFadeInDuration",
                                "thumbsLoadRange",
                                "treeEnabled",
                                "twoColThumbHeight",
                                "twoColThumbWidth"
                            ]
                        }
                    },
                    "required": [
                        "options"
                    ]
                },
                "dialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "close": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "close"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "downloadDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "download": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "entireFileAsOriginal": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "noneAvailable": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "preview": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "download",
                                "entireFileAsOriginal",
                                "noneAvailable",
                                "preview",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "settingsDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "locale": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "pagingEnabled": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "preserveViewport": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "locale",
                                "pagingEnabled",
                                "preserveViewport",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                }
            },
            "required": [
                "embedDialogue",
                "footerPanel",
                "genericDialogue",
                "headerPanel",
                "helpDialogue",
                "mediaelementCenterPanel",
                "moreInfoRightPanel",
                "treeViewLeftPanel",
                "dialogue",
                "downloadDialogue",
                "settingsDialogue"
            ]
        },
        "localisation": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string",
                    "minLength": 1
                },
                "locales": {
                    "type": "array",
                    "_uniqueItems": true,
                    "minItems": 1,
                    "items": {
                        "required": [
                            "name",
                            "label"
                        ],
                        "properties": {
                            "name": {
                                "type": "string",
                                "minLength": 1
                            },
                            "label": {
                                "type": "string",
                                "minLength": 1
                            }
                        }
                    }
                }
            },
            "required": [
                "label",
                "locales"
            ]
        },
        "content": {
            "type": "object",
            "properties": {
                "degradedResource": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "degradedResource"
            ]
        }
    },
    "required": [
        "options",
        "modules",
        "localisation",
        "content"
    ]
}