{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "location": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string"
                },
                "address": {
                    "type": "string"
                },
                "coordinates": {
                    "type": "object",
                    "properties": {
                        "lat": {
                            "type": "number"
                        },
                        "lng": {
                            "type": "number"
                        }
                    },
                    "required": [
                        "lat",
                        "lng"
                    ]
                }
            },
            "required": [
                "alias",
                "address",
                "coordinates"
            ]
        },
        "contact": {
            "type": "object",
            "properties": {
                "phone": {
                    "type": "string"
                }
            },
            "required": [
                "phone"
            ]
        },
        "priceRange": {
            "type": "object",
            "properties": {
                "from": {
                    "type": "number",
                    "minimum": 0
                },
                "to": {
                    "type": "number",
                    "minimum": 0
                }
            },
            "required": [
                "from",
                "to"
            ]
        },
        "menu": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "price": {
                        "type": "number"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "name",
                    "price",
                    "tags"
                ]
            }
        }
    },
    "required": [
        "name",
        "location",
        "contact",
        "priceRange",
        "menu"
    ]
}