json_schema: {
      "id": "https://public-api.wordpress.com/rest/v1/domains/validation-schema/fr",
      "$schema": "http://json-schema.org/draft-04/schema",
      "definitions": {
          "empty": {
              "anyOf": [
                  {
                      "type": "null"
                  },
                  {
                      "type": "string",
                      "maxLength": 0
                  }
              ]
          },
          "organizationIsRequiredWhenRegistrantTypeIsOrganization": {
              "not": {
                  "properties": {
                      "extra": {
                          "type": "object",
                          "properties": {
                              "fr": {
                                  "type": "object",
                                  "properties": {
                                      "registrantType": {
                                          "type": "string",
                                          "enum": [
                                              "organization"
                                          ]
                                      }
                                  }
                              }
                          }
                      },
                      "organization": {
                          "$ref": "#/definitions/empty"
                      }
                  }
              }
          }
      },
      "type": "object",
      "allOf": [
          {
              "$ref": "#/definitions/organizationIsRequiredWhenRegistrantTypeIsOrganization"
          },
          {
              "type": "object",
              "required": [
                  "extra"
              ],
              "properties": {
                  "organization": {
                      "type": "string",
                      "not": {
                          "pattern": "[^a-zA-Z0-9.,()@&' -]"
                      },
                      "maxLength": 100
                  },
                  "extra": {
                      "type": "object",
                      "properties": {
                          "fr": {
                              "type": "object",
                              "properties": {
                                  "sirenSiret": {
                                      "type": "string",
                                      "pattern": "^[0-9]*$",
                                      "anyOf": [
                                          {
                                              "minLength": 9,
                                              "maxLength": 9
                                          },
                                          {
                                              "minLength": 14,
                                              "maxLength": 14
                                          },
                                          {
                                              "$ref": "#/definitions/empty"
                                          }
                                      ]
                                  },
                                  "registrantType": {
                                      "type": "string",
                                      "enum": [
                                          "individual",
                                          "organization"
                                      ]
                                  },
                                  "registrantVatId": {
                                      "type": "string",
                                      "anyOf": [
                                          {
                                              "pattern": "^(AT)U[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(BE)0[0-9]{9}$"
                                          },
                                          {
                                              "pattern": "^(BG)[0-9]{9,10}$"
                                          },
                                          {
                                              "pattern": "^(CY)[0-9]{8}L$"
                                          },
                                          {
                                              "pattern": "^(CZ)[0-9]{8,10}$"
                                          },
                                          {
                                              "pattern": "^(DE)[0-9]{9}$"
                                          },
                                          {
                                              "pattern": "^(DK)[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(EE)[0-9]{9}$"
                                          },
                                          {
                                              "pattern": "^(EL|GR)[0-9]{9}$"
                                          },
                                          {
                                              "pattern": "^(ES)[0-9A-Z][0-9]{7}[0-9A-Z]$"
                                          },
                                          {
                                              "pattern": "^(FI)[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(FR)[0-9A-Z]{2}[0-9]{9}$"
                                          },
                                          {
                                              "pattern": "^(GB)([0-9]{9}([0-9]{3})?|(GD|HA)[0-9]{3})$"
                                          },
                                          {
                                              "pattern": "^(HR)[0-9]{11}$"
                                          },
                                          {
                                              "pattern": "^(HU)[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(IE)([0-9][0-9A-Z+*][0-9]{5}[A-Z]|[0-9]{7}[0-9A-Z]{1,2})$"
                                          },
                                          {
                                              "pattern": "^(IT)[0-9]{11}$"
                                          },
                                          {
                                              "pattern": "^(LT)[0-9]{9}([0-9]{3})?$"
                                          },
                                          {
                                              "pattern": "^(LU)[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(LV)[0-9]{11}$"
                                          },
                                          {
                                              "pattern": "^(MT)[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(NL)[0-9]{9}B[0-9]{2}$"
                                          },
                                          {
                                              "pattern": "^(PL)[0-9]{10}$"
                                          },
                                          {
                                              "pattern": "^(PT)[0-9]{9}$"
                                          },
                                          {
                                              "pattern": "^(RO)[0-9]{2,10}$"
                                          },
                                          {
                                              "pattern": "^(SE)[0-9]{12}$"
                                          },
                                          {
                                              "pattern": "^(SI)[0-9]{8}$"
                                          },
                                          {
                                              "pattern": "^(SK)[0-9]{10}$"
                                          },
                                          {
                                              "$ref": "#/definitions/empty"
                                          }
                                      ]
                                  },
                                  "trademarkNumber": {
                                      "pattern": "^[0-9]*$",
                                      "maxLength": 9,
                                      "oneOf": [
                                          {
                                              "minLength": 9
                                          },
                                          {
                                              "$ref": "#/definitions/empty"
                                          }
                                      ]
                                  }
                              },
                              "required": [
                                  "registrantType"
                              ]
                          }
                      }
                  }
              }
          }
      ],
      "note": "We'll want to fetch this through the API, where wpcom.undocumented already has `mapKeysRecursively()` & `camelCase()`"
  }