{
    "definitions": {
        "address": {
            "allOf": [
                {
                    "$ref": "#/definitions/basicAddress"
                },
                {
                    "properties": {
                        "Latitude": {
                            "maximum": 90,
                            "minimum": -90,
                            "type": "number"
                        },
                        "Longitude": {
                            "maximum": 180,
                            "minimum": -180,
                            "type": "number"
                        }
                    },
                    "type": "object"
                }
            ]
        },
        "basicAddress": {
            "comment": "This is an address",
            "properties": {
                "City": {
                    "comment": "This is a city",
                    "type": "string"
                },
                "State": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string"
                },
                "Street": {
                    "type": "string"
                },
                "ZipCode": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "unum": {
            "minimum": 0,
            "type": "number"
        }
    },
    "properties": {
        "Loan": {
            "description": "Loan information",
            "properties": {
                "AbbreviateThisReallyLongColumn": {
                    "type": "number"
                },
                "Amount": {
                    "type": "number"
                },
                "SomeSuperLongColumnNameThatDoesntFitInPostgresUnfortunately": {
                    "type": "number"
                }
            },
            "type": "object"
        },
        "RealEstateOwned": {
            "patternProperties": {
                "[0-9]+": {
                    "properties": {
                        "Address": {
                            "$ref": "#/definitions/basicAddress"
                        },
                        "RentalIncome": {
                            "type": "number"
                        }
                    },
                    "type": "object"
                }
            },
            "type": "object"
        },
        "SubjectProperty": {
            "properties": {
                "Acreage": {
                    "$ref": "#/definitions/unum"
                },
                "Address": {
                    "$ref": "#/definitions/address"
                }
            },
            "type": "object"
        }
    },
    "title": "Fact schema",
    "type": "object"
}