{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:PostalAddress",
  "title": "PostalAddress",
  "description": "The mailing address.",
  "type": "object",
  "allOf": [
    {
      "description": "A contact point—for example, a Customer Complaints department.",
      "$ref": "schema:ContactPoint"
    }
  ],
  "properties": {
    "addressCountry": {
      "description": "The country. Recommended to be in 2-letter [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1) format, for example \"US\". For backward compatibility, a 3-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code such as \"SGP\" or a full country name such as \"Singapore\" can also be used.",
      "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }]
    },
    "addressLocality": {
      "description": "The locality in which the street address is, and which is in the region. For example, Mountain View.",
      "type": "string"
    },
    "addressRegion": {
      "description": "The region in which the locality is, and which is in the country. For example, California or another appropriate first-level [Administrative division](https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country).",
      "type": "string"
    },
    "extendedAddress": {
      "description": "An address extension such as an apartment number, C/O or alternative name.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "postOfficeBoxNumber": {
      "description": "The post office box number for PO box addresses.",
      "type": "string"
    },
    "postalCode": {
      "description": "The postal code. For example, 94043.",
      "type": "string"
    },
    "streetAddress": {
      "description": "The street address. For example, 1600 Amphitheatre Pkwy.",
      "type": "string"
    }
  }
}
