json_schema: {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "definitions": {
          "address": {
              "type": "object",
              "properties": {
                  "street_address": {
                      "type": "string"
                  },
                  "city": {
                      "type": "string"
                  },
                  "state": {
                      "type": "string"
                  }
              },
              "required": [
                  "street_address",
                  "city",
                  "state"
              ]
          },
          "office_address": {
              "properties": {
                  "type": {
                      "enum": [
                          "business"
                      ]
                  },
                  "building": {
                      "type": "string"
                  }
              },
              "required": [
                  "type",
                  "building"
              ],
              "additionalProperties": false
          },
          "home_address": {
              "properties": {
                  "type": {
                      "enum": [
                          "home"
                      ]
                  },
                  "street_address": {
                      "type": "string"
                  },
                  "city": {
                      "type": "string"
                  },
                  "state": {
                      "type": "string"
                  }
              },
              "required": [
                  "type",
                  "street_address",
                  "city",
                  "state"
              ],
              "additionalProperties": false
          },
          "partOne": {
              "properties": {
                  "one": {
                      "type": "string"
                  }
              }
          },
          "partTwo": {
              "properties": {
                  "two": {
                      "type": "integer"
                  }
              }
          }
      },
      "type": "object",
      "properties": {
          "client_address": {
              "oneOf": [
                  {
                      "$ref": "#/definitions/office_address"
                  },
                  {
                      "$ref": "#/definitions/home_address"
                  }
              ]
          },
          "parts": {
              "oneOf": [
                  {
                      "$ref": "#/definitions/partOne"
                  },
                  {
                      "$ref": "#/definitions/partTwo"
                  }
              ],
              "additionalProperties": false
          }
      }
  }