json_schema: {
      "definitions": {
          "filter": {
              "properties": {
                  "column": {
                      "type": "string"
                  },
                  "not": {
                      "type": "boolean"
                  },
                  "operator": {
                      "enum": [
                          "equals",
                          "regex"
                      ]
                  },
                  "value": {
                      "type": "string"
                  }
              },
              "required": [
                  "column",
                  "operator",
                  "value"
              ],
              "type": "object"
          },
          "linkout": {
              "oneOf": [
                  {
                      "required": [
                          "featuretype"
                      ]
                  },
                  {
                      "required": [
                          "featuretypePattern"
                      ]
                  }
              ],
              "properties": {
                  "featuretype": {
                      "type": "string"
                  },
                  "featuretypePattern": {
                      "type": "string"
                  },
                  "isLinkingService": {
                      "default": false,
                      "type": "boolean"
                  },
                  "text": {
                      "type": "string"
                  },
                  "url": {
                      "type": "string"
                  }
              },
              "required": [
                  "url"
              ],
              "type": "object"
          }
      },
      "description": "For more info, see https://github.com/ncgr/cmap-js",
      "properties": {
          "#": {
              "type": "string"
          },
          "attribution": {
              "type": "string"
          },
          "header": {
              "type": "string"
          },
          "initialView": {
              "items": {
                  "properties": {
                      "filters": {
                          "items": {
                              "$ref": "#/definitions/filter"
                          },
                          "type": "array"
                      },
                      "map": {
                          "type": "string"
                      },
                      "source": {
                          "type": "string"
                      }
                  },
                  "required": [
                      "source",
                      "map"
                  ],
                  "type": "object"
              },
              "type": "array"
          },
          "sources": {
              "items": {
                  "properties": {
                      "#": {
                          "type": "string"
                      },
                      "data": {
                          "type": "object"
                      },
                      "filters": {
                          "items": {
                              "$ref": "#/definitions/filter"
                          },
                          "type": "array"
                      },
                      "id": {
                          "type": "string"
                      },
                      "linkouts": {
                          "items": {
                              "$ref": "#/definitions/linkout"
                          },
                          "type": "array"
                      },
                      "method": {
                          "type": "string"
                      },
                      "url": {
                          "type": "string"
                      }
                  },
                  "required": [
                      "url",
                      "method",
                      "id"
                  ],
                  "type": "object"
              },
              "type": "array"
          }
      },
      "required": [
          "header",
          "attribution",
          "sources"
      ],
      "title": "cmap-js schema",
      "type": "object"
  }