{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "",
    "type": "object",
    "properties": {
        "options": {
            "type": "object",
            "properties": {
                "leftPanelEnabled": {
                    "type": "boolean"
                },
                "minWidthBreakPoint": {
                    "type": "number"
                },
                "overrideFullScreen": {
                    "type": "boolean"
                },
                "pagingEnabled": {
                    "type": "boolean"
                },
                "pessimisticAccessControl": {
                    "type": "boolean"
                },
                "preserveViewport": {
                    "type": "boolean"
                },
                "rightPanelEnabled": {
                    "type": "boolean"
                },
                "searchWithinEnabled": {
                    "type": "boolean"
                },
                "theme": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "leftPanelEnabled",
                "minWidthBreakPoint",
                "overrideFullScreen",
                "pagingEnabled",
                "pessimisticAccessControl",
                "preserveViewport",
                "rightPanelEnabled",
                "searchWithinEnabled",
                "theme"
            ]
        },
        "modules": {
            "type": "object",
            "properties": {
                "dialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "close": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "close"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                },
                "downloadDialogue": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "confinedImageSize": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "confinedImageSize"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "currentViewAsJpg": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "download": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "editSettings": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "entireDocument": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "entireFileAsOriginal": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "noneAvailable": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "pagingNote": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "preview": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "wholeImageHighRes": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "wholeImageLowResAsJpg": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "currentViewAsJpg",
                                "download",
                                "editSettings",
                                "entireDocument",
                                "entireFileAsOriginal",
                                "noneAvailable",
                                "pagingNote",
                                "preview",
                                "title",
                                "wholeImageHighRes",
                                "wholeImageLowResAsJpg"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "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": {
                                "downloadEnabled": {
                                    "type": "boolean"
                                },
                                "embedEnabled": {
                                    "type": "boolean"
                                },
                                "fullscreenEnabled": {
                                    "type": "boolean"
                                },
                                "minimiseButtons": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "downloadEnabled",
                                "embedEnabled",
                                "fullscreenEnabled",
                                "minimiseButtons"
                            ]
                        },
                        "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": [
                        "options",
                        "content"
                    ]
                },
                "genericDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "emptyValue": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "invalidNumber": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "noMatches": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "ok": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "pageNotFound": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "refresh": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "emptyValue",
                                "invalidNumber",
                                "noMatches",
                                "ok",
                                "pageNotFound",
                                "refresh"
                            ]
                        }
                    },
                    "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": {
                                "panelAnimationDuration": {
                                    "type": "number"
                                },
                                "panelCollapsedWidth": {
                                    "type": "number"
                                },
                                "panelExpandedWidth": {
                                    "type": "number"
                                },
                                "panelOpen": {
                                    "type": "boolean"
                                },
                                "textLimit": {
                                    "type": "number"
                                },
                                "textLimitType": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "panelAnimationDuration",
                                "panelCollapsedWidth",
                                "panelExpandedWidth",
                                "panelOpen",
                                "textLimit",
                                "textLimitType"
                            ]
                        },
                        "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
                                },
                                "less": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "more": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "noData": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "collapse",
                                "collapseFull",
                                "expand",
                                "expandFull",
                                "holdingText",
                                "less",
                                "more",
                                "noData",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "pagingHeaderPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "localeToggleEnabled": {
                                    "type": "boolean"
                                },
                                "pageModeEnabled": {
                                    "type": "boolean"
                                },
                                "pagingToggleEnabled": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "localeToggleEnabled",
                                "pageModeEnabled",
                                "pagingToggleEnabled"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "close": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "emptyValue": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "first": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "firstImage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "firstPage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "folio": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "go": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "help": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "image": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "last": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "lastImage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "lastPage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "next": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "nextImage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "nextPage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "of": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "oneUp": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "page": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "previous": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "previousImage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "previousPage": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "settings": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "twoUp": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "close",
                                "emptyValue",
                                "first",
                                "firstImage",
                                "firstPage",
                                "folio",
                                "go",
                                "help",
                                "image",
                                "last",
                                "lastImage",
                                "lastPage",
                                "next",
                                "nextImage",
                                "nextPage",
                                "of",
                                "oneUp",
                                "page",
                                "previous",
                                "previousImage",
                                "previousPage",
                                "settings",
                                "twoUp"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "seadragonCenterPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "controlsFadeAfterInactive": {
                                    "type": "number"
                                },
                                "controlsFadeDelay": {
                                    "type": "number"
                                },
                                "controlsFadeLength": {
                                    "type": "number"
                                },
                                "defaultZoomLevel": {
                                    "type": "number"
                                },
                                "navigatorPosition": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "pageGap": {
                                    "type": "number"
                                },
                                "trimAttributionCount": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "controlsFadeAfterInactive",
                                "controlsFadeDelay",
                                "controlsFadeLength",
                                "defaultZoomLevel",
                                "navigatorPosition",
                                "pageGap",
                                "trimAttributionCount"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "acknowledgements": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "goHome": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "imageUnavailable": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "next": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "previous": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "rotateRight": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "zoomIn": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "zoomOut": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "acknowledgements",
                                "goHome",
                                "imageUnavailable",
                                "next",
                                "previous",
                                "rotateRight",
                                "zoomIn",
                                "zoomOut"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "searchFooterPanel": {
                    "type": "object",
                    "properties": {
                        "options": {
                            "type": "object",
                            "properties": {
                                "elideDetailsTermsCount": {
                                    "type": "number"
                                },
                                "elideResultsTermsCount": {
                                    "type": "number"
                                },
                                "pageModeEnabled": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "elideDetailsTermsCount",
                                "elideResultsTermsCount",
                                "pageModeEnabled"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "clearSearch": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "defaultLabel": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "displaying": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "enterKeyword": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "image": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "imageCaps": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "instanceFound": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "instancesFound": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "nextResult": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "page": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "pageCaps": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "previousResult": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "resultFoundFor": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "resultsFoundFor": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "searchWithin": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "clearSearch",
                                "defaultLabel",
                                "displaying",
                                "enterKeyword",
                                "image",
                                "imageCaps",
                                "instanceFound",
                                "instancesFound",
                                "nextResult",
                                "page",
                                "pageCaps",
                                "previousResult",
                                "resultFoundFor",
                                "resultsFoundFor",
                                "searchWithin"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "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"
                    ]
                },
                "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"
                            ]
                        },
                        "content": {
                            "type": "object",
                            "properties": {
                                "collapse": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "collapseFull": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "expand": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "expandFull": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "index": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "thumbnails": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "title": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "collapse",
                                "collapseFull",
                                "expand",
                                "expandFull",
                                "index",
                                "thumbnails",
                                "title"
                            ]
                        }
                    },
                    "required": [
                        "options",
                        "content"
                    ]
                },
                "clickThroughDialogue": {
                    "type": "object",
                    "properties": {
                        "content": {
                            "type": "object",
                            "properties": {
                                "viewTerms": {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "required": [
                                "viewTerms"
                            ]
                        }
                    },
                    "required": [
                        "content"
                    ]
                }
            },
            "required": [
                "dialogue",
                "downloadDialogue",
                "embedDialogue",
                "footerPanel",
                "genericDialogue",
                "helpDialogue",
                "moreInfoRightPanel",
                "pagingHeaderPanel",
                "seadragonCenterPanel",
                "searchFooterPanel",
                "settingsDialogue",
                "treeViewLeftPanel",
                "clickThroughDialogue"
            ]
        },
        "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": {
                "canvasIndexOutOfRange": {
                    "type": "string",
                    "minLength": 1
                },
                "degradedResource": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "canvasIndexOutOfRange",
                "degradedResource"
            ]
        }
    },
    "required": [
        "options",
        "modules",
        "localisation",
        "content"
    ]
}