{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "array",
    "items": {
        "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"
                    },
                    "to": {
                        "type": "number"
                    }
                },
                "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"
        ]
    }
}