json_schema: {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "object",
      "properties": {
          "schema": {
              "type": "object",
              "properties": {
                  "name": {
                      "type": "string"
                  },
                  "validator": {
                      "type": "string"
                  }
              },
              "required": [
                  "name",
                  "validator"
              ]
          },
          "client": {
              "type": "object",
              "properties": {
                  "backend": {
                      "type": "object",
                      "properties": {
                          "name": {
                              "type": "string"
                          },
                          "class": {
                              "type": "string"
                          },
                          "host": {
                              "type": "string"
                          },
                          "protocol": {
                              "type": "string"
                          }
                      },
                      "required": [
                          "name",
                          "class",
                          "host",
                          "protocol"
                      ]
                  },
                  "path_processor": {
                      "type": "object",
                      "properties": {
                          "class": {
                              "type": "string"
                          },
                          "params": {
                              "type": "object",
                              "properties": {}
                          }
                      },
                      "required": [
                          "class",
                          "params"
                      ]
                  },
                  "tile_processor": {
                      "type": "object",
                      "properties": {
                          "class": {
                              "type": "string"
                          },
                          "params": {
                              "type": "object",
                              "properties": {}
                          }
                      },
                      "required": [
                          "class",
                          "params"
                      ]
                  }
              },
              "required": [
                  "backend",
                  "path_processor",
                  "tile_processor"
              ]
          },
          "database": {
              "type": "object",
              "properties": {
                  "collection": {
                      "type": "string"
                  },
                  "experiment": {
                      "type": "string"
                  },
                  "channel": {
                      "type": "string"
                  }
              },
              "required": [
                  "collection",
                  "experiment",
                  "channel"
              ]
          },
          "ingest_job": {
              "type": "object",
              "properties": {
                  "resolution": {
                      "type": "integer"
                  },
                  "extent": {
                      "type": "object",
                      "properties": {
                          "x": {
                              "type": "array",
                              "items": {
                                  "type": "integer"
                              }
                          },
                          "y": {
                              "type": "array",
                              "items": {
                                  "type": "integer"
                              }
                          },
                          "z": {
                              "type": "array",
                              "items": {
                                  "type": "integer"
                              }
                          },
                          "t": {
                              "type": "array",
                              "items": {
                                  "type": "integer"
                              }
                          }
                      },
                      "required": [
                          "x",
                          "y",
                          "z",
                          "t"
                      ]
                  },
                  "tile_size": {
                      "type": "object",
                      "properties": {
                          "x": {
                              "type": "integer"
                          },
                          "y": {
                              "type": "integer"
                          },
                          "z": {
                              "type": "integer"
                          },
                          "t": {
                              "type": "integer"
                          }
                      },
                      "required": [
                          "x",
                          "y",
                          "z",
                          "t"
                      ]
                  }
              },
              "required": [
                  "resolution",
                  "extent",
                  "tile_size"
              ]
          }
      },
      "required": [
          "schema",
          "client",
          "database",
          "ingest_job"
      ]
  }