{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "description": "",
    "type": "object",
    "properties": {
        "options": {
            "type": "object",
            "properties": {
                "bookmarkThumbHeight": {
                    "type": "number"
                },
                "bookmarkThumbWidth": {
                    "type": "number"
                },
                "limitLocales": {
                    "type": "boolean"
                },
                "minWidthBreakPoint": {
                    "type": "number"
                },
                "openTemplate": {
                    "type": "string",
                    "minLength": 1
                },
                "pessimisticAccessControl": {
                    "type": "boolean"
                },
                "rightPanelEnabled": {
                    "type": "boolean"
                },
                "theme": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "bookmarkThumbHeight",
                "bookmarkThumbWidth",
                "limitLocales",
                "minWidthBreakPoint",
                "openTemplate",
                "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": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "bookmarkEnabled": {
                                    "type": "boolean"
                                },
                                "feedbackEnabled": {
                                    "type": "boolean"
                                },
                                "minimiseButtons": {
                                    "type": "boolean"
                                },
                                "openEnabled": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "bookmarkEnabled",
                                "feedbackEnabled",
                                "minimiseButtons",
                                "openEnabled"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "bookmark": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "download": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "embed": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "exitFullScreen": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "fullScreen": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "open": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "bookmark",
                                "download",
                                "embed",
                                "exitFullScreen",
                                "fullScreen",
                                "open"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "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"
                    ]
                },
                "moreInfoRightPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "canvasExclude": {
                                    "type": "string"
                                },
                                "displayOrder": {
                                    "type": "string"
                                },
                                "manifestExclude": {
                                    "type": "string"
                                },
                                "panelAnimationDuration": {
                                    "type": "number"
                                },
                                "panelCollapsedWidth": {
                                    "type": "number"
                                },
                                "panelExpandedWidth": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "canvasExclude",
                                "displayOrder",
                                "manifestExclude",
                                "panelAnimationDuration",
                                "panelCollapsedWidth",
                                "panelExpandedWidth"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "attribution": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "collapse": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "collapseFull": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "description": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "expand": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "expandFull": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "holdingText": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "less": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "license": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "logo": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "more": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "noData": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "attribution",
                                "collapse",
                                "collapseFull",
                                "description",
                                "expand",
                                "expandFull",
                                "holdingText",
                                "less",
                                "license",
                                "logo",
                                "more",
                                "noData",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "pdfCenterPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "titleEnabled": {
                                    "type": "boolean"
                                },
                                "usePdfJs": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "titleEnabled",
                                "usePdfJs"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {},
                            "required": []
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "contentLeftPanel": {
                    "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"
                    ]
                },
                "loginDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "login": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "cancel": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "login",
                                "cancel"
                            ]
                        }
                    },
                    "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
                                },
                                "website": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "locale",
                                "pagingEnabled",
                                "preserveViewport",
                                "title",
                                "website"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                }
            },
            "required": [
                "embedDialogue",
                "footerPanel",
                "genericDialogue",
                "headerPanel",
                "helpDialogue",
                "moreInfoRightPanel",
                "pdfCenterPanel",
                "contentLeftPanel",
                "dialogue",
                "downloadDialogue",
                "loginDialogue",
                "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": {
                "authCORSError": {
                    "type": "string",
                    "minLength": 1
                },
                "authorisationFailedMessage": {
                    "type": "string",
                    "minLength": 1
                },
                "degradedResourceMessage": {
                    "type": "string",
                    "minLength": 1
                },
                "degradedResourceLogin": {
                    "type": "string",
                    "minLength": 1
                },
                "forbiddenResourceMessage": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "authCORSError",
                "authorisationFailedMessage",
                "degradedResourceMessage",
                "degradedResourceLogin",
                "forbiddenResourceMessage"
            ]
        }
    },
    "required": [
        "options",
        "modules",
        "localisation",
        "content"
    ]
}