{
    "address_types": {
        "title": "Address Types",
        "description": "What an address represents",
        "x-id-field": "address_type_id",
        "x-list-columns": [ "address_type" ],
        "required": [ "address_type" ],
        "properties": {
            "address_type_id": {
                "type": "integer",
                "readOnly": true
            },
            "address_type": {
                "type": "string"
            }
        }
    },
    "cities": {
        "title": "Cities",
        "description": "Cities used in addresses",
        "x-id-field": "city_id",
        "x-list-columns": [
            {
                "title": "City",
                "template": "{city_name}, {city_state}"
            }
        ],
        "required": [ "city_name", "city_state" ],
        "properties": {
            "city_id": {
                "type": "integer",
                "readOnly": true
            },
            "city_name": {
                "type": "string"
            },
            "city_state": {
                "type": "string"
            }
        }
    },
    "districts": {
        "title": "Districts",
        "description": "Tax areas that can be applied to addresses",
        "x-id-field": "district_id",
        "x-list-columns": [ "district_code" ],
        "properties": {
            "district_id": {
                "type": "integer",
                "readOnly": true
            },
            "district_code": {
                "type": "string"
            }
        },
        "required": [ "district_code" ]
    },
    "addresses": {
        "title": "Addresses",
        "description": "A directory of places to go",
        "x-id-field": "address_id",
        "x-list-columns": [ "street" ],
        "required": [ "street" ],
        "properties": {
            "address_id": {
                "type": "integer",
                "readOnly": true
            },
            "address_type_id": {
                "type": "integer",
                "x-foreign-key": "address_types"
            },
            "street": {
                "type": "string"
            },
            "city_id": {
                "type": "integer",
                "x-foreign-key": "cities"
            }
        }
    },
    "address_districts": {
        "title": "Address Districts",
        "description": "Which districts an address belongs to",
        "x-id-field": [ "address_id", "district_id" ],
        "required": [ "address_id", "district_id" ],
        "properties": {
            "address_id": {
                "type": "integer",
                "x-foreign-key": "addresses"
            },
            "district_id": {
                "type": "integer",
                "x-foreign-key": "districts"
            }
        }
    }
}