{
    "id": "https://schema.org.uk/schemas/restaurant/1.0",
    "version": "1.0",
    "name": "Restaurant Schema",
    "description": "The Restaurant Schema organises restaurant identity, contact, location, opening hours, cuisine, menu, facilities and diner information into a consistent format, using Schema.org vocabulary where applicable.",
    "sections": [
        {
            "name": "Identity",
            "key": "identity",
            "attributes": [
                {
                    "name": "restaurant.id",
                    "label": "Identifier",
                    "description": "The permanent unique identifier already assigned to the restaurant. JSON-LD states the same value as @id. The identifier is not calculated from the name, telephone, or address.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": true,
                    "schema_org": "@id"
                },
                {
                    "name": "restaurant.title",
                    "label": "Title",
                    "description": "The name of the restaurant.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": true,
                    "schema_org": "name"
                },
                {
                    "name": "restaurant.description",
                    "label": "Description",
                    "description": "A text description of the restaurant.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "description"
                }
            ]
        },
        {
            "name": "Incorporation details",
            "key": "company",
            "attributes": [
                {
                    "name": "restaurant.company.name",
                    "label": "Company name",
                    "description": "The registered company name, when the business is registered at Companies House and states that name. A missing value stays unknown. This is not the trading name. JSON-LD uses legalName.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "legalName",
                    "component": "https://schema.org.uk/schemas/components/company"
                },
                {
                    "name": "restaurant.company.number",
                    "label": "Company number",
                    "description": "The company number, when the business is registered at Companies House and states that number. A missing value stays unknown. This is not a VAT number. When a number is stated, JSON-LD uses a PropertyValue named companyNumber.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty",
                    "component": "https://schema.org.uk/schemas/components/company"
                },
                {
                    "name": "restaurant.company.incorporated_on",
                    "label": "Incorporation date",
                    "description": "The incorporation date, when the business is registered at Companies House and states that date. A missing date stays unknown. JSON-LD uses foundingDate for that stated date.",
                    "data_type": "date",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "foundingDate",
                    "component": "https://schema.org.uk/schemas/components/company"
                },
                {
                    "name": "restaurant.company.vat",
                    "label": "VAT number",
                    "description": "The VAT number, when the business is registered for VAT and states that number. A missing value stays unknown. This is not the company number. JSON-LD uses vatID.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "vatID",
                    "component": "https://schema.org.uk/schemas/components/company"
                }
            ]
        },
        {
            "name": "Contact",
            "key": "contact",
            "attributes": [
                {
                    "name": "restaurant.contact.phone",
                    "label": "Phone",
                    "description": "The telephone number of the restaurant.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "telephone",
                    "component": "https://schema.org.uk/schemas/components/contact"
                },
                {
                    "name": "restaurant.contact.url",
                    "label": "Url",
                    "description": "The website address of the restaurant.",
                    "data_type": "url",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "url",
                    "component": "https://schema.org.uk/schemas/components/contact"
                },
                {
                    "name": "restaurant.contact.email",
                    "label": "Email",
                    "description": "An email address for the restaurant, when one is stated. Leave it empty when none is known.",
                    "data_type": "email",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "email",
                    "component": "https://schema.org.uk/schemas/components/contact"
                }
            ]
        },
        {
            "name": "Location and coordinates",
            "key": "location_and_coordinates",
            "attributes": [
                {
                    "name": "restaurant.location.address",
                    "label": "Address",
                    "description": "The postal address of the restaurant. The original address line stays intact.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "address"
                },
                {
                    "name": "restaurant.location.latitude",
                    "label": "Latitude",
                    "description": "The WGS84 latitude of the restaurant.",
                    "data_type": "number",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "latitude"
                },
                {
                    "name": "restaurant.location.longitude",
                    "label": "Longitude",
                    "description": "The WGS84 longitude of the restaurant. A coordinate pair is required before JSON-LD includes GeoCoordinates.",
                    "data_type": "number",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "longitude"
                },
                {
                    "name": "restaurant.location.postcode",
                    "label": "Postcode",
                    "description": "The UK postcode when one postcode is present in the postal address.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "postalCode",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "restaurant.location.street",
                    "label": "Street",
                    "description": "The street line when the postal address separates it from the town. A borough is not the street.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "streetAddress",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "restaurant.location.locality",
                    "label": "Locality",
                    "description": "The town or city when the postal address states it as its own part. A borough is not the locality.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "addressLocality",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "restaurant.location.region",
                    "label": "Region",
                    "description": "The county or region when the postal address states it as its own part. A media-market code is not a region and is left empty.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "addressRegion",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "restaurant.location.country",
                    "label": "Country",
                    "description": "The country when the address states it. A two-letter country code is recorded as the country name. Leave it empty when the country is not stated.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "addressCountry",
                    "component": "https://schema.org.uk/schemas/components/address"
                }
            ]
        },
        {
            "name": "Opening hours",
            "key": "opening_hours",
            "attributes": [
                {
                    "name": "restaurant.hours.opening",
                    "label": "Opening hours",
                    "description": "The regular opening hours when a weekly timetable states each open day and its opening and closing times. A current open or closed status is not opening hours. Busy periods are not opening hours. A day with no stated times is left empty.",
                    "data_type": "object",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "openingHoursSpecification"
                }
            ]
        },
        {
            "name": "Images",
            "key": "images",
            "attributes": [
                {
                    "name": "restaurant.image.logo",
                    "label": "Logo",
                    "description": "The address of the restaurant logo, when one is stated. A missing address is omitted.",
                    "data_type": "url",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "logo"
                },
                {
                    "name": "restaurant.image.main",
                    "label": "Main image",
                    "description": "The address of the main image of the restaurant, when one is stated. A count of photographs is not an image. A missing address is omitted.",
                    "data_type": "url",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "image",
                    "component": "https://schema.org.uk/schemas/components/image"
                }
            ]
        },
        {
            "name": "Reputation",
            "key": "review_statistics",
            "attributes": [
                {
                    "name": "restaurant.review.rating",
                    "label": "Review rating",
                    "description": "A review score from one provider. It is not a qualification or an award. A scale is recorded only when that provider states it. The score stays in the native record and is not copied into the core business JSON-LD.",
                    "data_type": "number",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "ratingValue",
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "restaurant.review.count",
                    "label": "Review count",
                    "description": "The number of reviews accompanying a review rating from the same provider. It is not calculated from another provider.",
                    "data_type": "integer",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "reviewCount",
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "restaurant.review.rating_count",
                    "label": "Rating count",
                    "description": "The number of ratings when the provider states it separately from the number of reviews. It is not calculated from the distribution.",
                    "data_type": "integer",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "ratingCount",
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "restaurant.review.distribution",
                    "label": "Rating distribution",
                    "description": "Numbers recorded against scores 1 to 5. They are not the review count. Schema.org has no single property for the five counts, so this stays unmapped.",
                    "data_type": "object",
                    "scope": "restaurant",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "restaurant.review.scale",
                    "label": "Rating scale",
                    "description": "The lowest and highest points of a review scale, when the scale is stated. Schema.org records those points as separate properties, so this attribute is not given one of them.",
                    "data_type": "object",
                    "scope": "restaurant",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "restaurant.review.provider",
                    "label": "Review provider",
                    "description": "The organisation that published these figures. Figures from another provider are a separate observation and are not averaged together.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "restaurant.review.observed_on",
                    "label": "Observation date",
                    "description": "The date on which these figures were observed, when that date is stated.",
                    "data_type": "date",
                    "scope": "restaurant",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                }
            ]
        },
        {
            "name": "Price",
            "key": "price",
            "attributes": [
                {
                    "name": "restaurant.price_range",
                    "label": "Price level",
                    "description": "A price indication using £, ££, £££, or ££££. Leave it empty when none is stated. This is not a dish price.",
                    "data_type": "text",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "priceRange"
                }
            ]
        },
        {
            "name": "Cuisine",
            "key": "cuisine",
            "attributes": [
                {
                    "name": "restaurant.cuisine",
                    "label": "Cuisine served",
                    "description": "The cuisines the restaurant serves. Use only these names: British, Italian, Greek, Spanish, Turkish, Indian, Thai, Mexican, Japanese, French, American, Mediterranean, Seafood, Steakhouse, European, Middle Eastern, Chinese, Vegetarian. Any other name is omitted. A named dish is not a cuisine. A missing value stays unknown. JSON-LD uses servesCuisine.",
                    "data_type": "list",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "servesCuisine"
                }
            ]
        },
        {
            "name": "Menu",
            "key": "services",
            "attributes": [
                {
                    "name": "restaurant.service.desserts",
                    "label": "Desserts",
                    "description": "Whether the restaurant offers desserts, including cakes and ice cream. Afternoon tea is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.private_hire",
                    "label": "Private event hire",
                    "description": "Whether the restaurant offers private hire, including a wedding, canapés, or a buffet. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.wine",
                    "label": "Wine",
                    "description": "Whether the restaurant offers wine, including prosecco, sangria, or a wine pairing. Cocktails are a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.coffee",
                    "label": "Coffee and tea",
                    "description": "Whether the restaurant offers coffee or tea, including smoothies and milkshakes. Afternoon tea is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.roast",
                    "label": "Sunday roast",
                    "description": "Whether the restaurant offers a Sunday roast, including Sunday lunch, a carvery, or Yorkshire pudding. Dinner is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.breakfast",
                    "label": "Breakfast",
                    "description": "Whether the restaurant offers breakfast, including brunch, pancakes, or French toast. A bottomless brunch is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.cocktails",
                    "label": "Cocktails",
                    "description": "Whether the restaurant offers cocktails. Wine and a bar on site are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.steak",
                    "label": "Steak and grill",
                    "description": "Whether the restaurant offers steak or grilled meat, including a mixed grill or ribs. Burgers and a Sunday roast are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.seafood",
                    "label": "Seafood",
                    "description": "Whether the restaurant offers seafood. Fish and chips are a separate service. Seafood as a cuisine name is separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.lunch",
                    "label": "Lunch menu",
                    "description": "Whether the restaurant offers a lunch menu, including an early sitting or a reduced-price lunch. Breakfast and dinner are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.sandwiches",
                    "label": "Sandwiches and light lunches",
                    "description": "Whether the restaurant offers sandwiches or light lunches, including toasties, panini, wraps, jacket potatoes, soup, or salads. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.tapas",
                    "label": "Tapas and small plates",
                    "description": "Whether the restaurant offers tapas or small plates, including a platter or mezze. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.burgers",
                    "label": "Burgers",
                    "description": "Whether the restaurant serves burgers. Steak and a grill are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.fish_and_chips",
                    "label": "Fish and chips",
                    "description": "Whether the restaurant offers fish and chips. A wider seafood menu is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.pizza_pasta",
                    "label": "Pizza and pasta",
                    "description": "Whether the restaurant offers pizza or pasta, including lasagne, gnocchi, or risotto. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.ale",
                    "label": "Real ale and local beer",
                    "description": "Whether the restaurant offers real ale or local beer. Wine and cocktails are separate. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.tasting_menu",
                    "label": "Tasting or set menu",
                    "description": "Whether the restaurant offers a tasting menu, a set menu, or a supper club. Dinner is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.dinner",
                    "label": "Dinner",
                    "description": "Whether the restaurant offers dinner, including an à la carte menu. Lunch is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.afternoon_tea",
                    "label": "Afternoon tea",
                    "description": "Whether the restaurant offers afternoon tea or cream tea. Coffee and tea as drinks are a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.brunch",
                    "label": "Bottomless brunch",
                    "description": "Whether the restaurant offers a bottomless brunch. Breakfast is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "restaurant.service.christmas",
                    "label": "Christmas menu",
                    "description": "Whether the restaurant offers a Christmas menu. A Sunday roast is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "Service"
                }
            ]
        },
        {
            "name": "Amenities",
            "key": "amenities",
            "attributes": [
                {
                    "name": "restaurant.amenity.children",
                    "label": "Good for children",
                    "description": "Whether the restaurant suits children, including a children's menu. A play area is separate. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.outdoor_seating",
                    "label": "Outdoor seating",
                    "description": "Whether the restaurant has outdoor seating, including covered seating or a garden. Indoor seating is not recorded separately. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.table_service",
                    "label": "Table service",
                    "description": "Whether the restaurant serves guests at the table. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.bar",
                    "label": "Bar on site",
                    "description": "Whether the restaurant has a bar. Cocktails are a separate service. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.dog_friendly",
                    "label": "Dog friendly",
                    "description": "Whether the restaurant welcomes dogs. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.parking",
                    "label": "Free parking",
                    "description": "Whether the restaurant has free parking. Limited parking stays with this amenity. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.wheelchair_access",
                    "label": "Step-free / wheelchair access",
                    "description": "Whether the restaurant has step-free or wheelchair access. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.live_music",
                    "label": "Live music",
                    "description": "Whether the restaurant has live music. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.toilets",
                    "label": "Customer toilets",
                    "description": "Whether the restaurant has customer toilets. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.wifi",
                    "label": "Wi-Fi",
                    "description": "Whether the restaurant offers Wi-Fi. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.play_area",
                    "label": "Children's play area",
                    "description": "Whether the restaurant has a children's play area. A children's menu is separate. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "restaurant.amenity.ev_charging",
                    "label": "EV charging",
                    "description": "Whether the restaurant has EV charging. Parking is separate. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "amenityFeature"
                }
            ]
        },
        {
            "name": "Restaurant details",
            "key": "details",
            "attributes": [
                {
                    "name": "restaurant.details.reservations",
                    "label": "Accepts reservations",
                    "description": "Whether the restaurant accepts reservations. Walk-in visits stay with this field. This is not a reservation record and not a price. A missing value stays unknown. JSON-LD uses acceptsReservations only when the value is stated as yes or no.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "acceptsReservations"
                },
                {
                    "name": "restaurant.details.vegetarian",
                    "label": "Vegetarian options",
                    "description": "Whether the restaurant offers vegetarian options. Vegan options and gluten-free options are separate. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named vegetarianOptions.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.takeaway",
                    "label": "Takeaway available",
                    "description": "Whether the restaurant offers takeaway or delivery, including an order placed through a food app. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named takeaway.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.allergy",
                    "label": "Allergy-friendly",
                    "description": "Whether the restaurant states that it can cater for allergies. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named allergyFriendly.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.vegan",
                    "label": "Vegan options",
                    "description": "Whether the restaurant offers vegan options. Vegetarian options are separate. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named veganOptions.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.gluten_free",
                    "label": "Gluten-free options",
                    "description": "Whether the restaurant offers gluten-free options. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named glutenFreeOptions.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.seasonal",
                    "label": "Seasonal or regularly changing menu",
                    "description": "Whether the restaurant changes its menu with the season, including specials. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named seasonalMenu.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.local",
                    "label": "Locally sourced produce",
                    "description": "Whether the restaurant states that it uses local or sustainably produced food. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named locallySourced.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.online_booking",
                    "label": "Online booking",
                    "description": "Whether the restaurant offers online booking, including pre-ordering. Reservations are a separate field. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named onlineBooking.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.rooms",
                    "label": "Overnight accommodation on site",
                    "description": "Whether the restaurant has overnight accommodation on site, including glamping. This is not a hotel listing. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named overnightStays.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "restaurant.details.deposit",
                    "label": "Deposits taken",
                    "description": "Whether the restaurant takes a deposit. This is not a price and not a reservation record. A missing value stays unknown. When a value is stated, JSON-LD uses a PropertyValue named deposit.",
                    "data_type": "boolean",
                    "scope": "restaurant",
                    "required": false,
                    "schema_org": "additionalProperty"
                }
            ]
        }
    ],
    "components": [
        {
            "id": "https://schema.org.uk/schemas/components/address",
            "name": "Address",
            "description": "A postal address other category schemas can reuse. The original address line stays intact. Missing parts are left empty.",
            "fields": [
                "address",
                "postcode",
                "street",
                "locality",
                "region",
                "country"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/contact",
            "name": "Contact",
            "description": "Telephone, website, and email other category schemas can reuse. Each value is optional. A missing value stays empty.",
            "fields": [
                "phone",
                "url",
                "email"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/company",
            "name": "Incorporation details",
            "description": "Registered company name, company number, and incorporation date when a business is registered at Companies House, and a VAT number when it is registered for VAT. Each value is included only when it is stated. A missing value stays unknown. Other category schemas reuse these fields.",
            "fields": [
                "name",
                "number",
                "incorporated_on",
                "vat"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/image",
            "name": "Image",
            "description": "An image, or one image in an ordered collection. Caption, attribution, and a rights note are optional. A missing note stays empty.",
            "fields": [
                "position",
                "url",
                "caption",
                "attribution",
                "rights"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/reputation",
            "name": "Reputation",
            "description": "Optional figures from one rating provider. A rating, a rating count, a review count, a scale, a distribution, and the date of the observation are recorded only when that provider states them. Themes are included only when a category records them. Figures from different providers are not combined. These figures are not copied into the core business JSON-LD.",
            "fields": [
                "provider",
                "rating",
                "rating_count",
                "count",
                "scale",
                "distribution",
                "observed_on",
                "themes"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/review-statistics",
            "name": "Review statistics",
            "alias_of": "https://schema.org.uk/schemas/components/reputation",
            "description": "Previous name of the Reputation component. New definitions use the Reputation component.",
            "fields": [
                "provider",
                "rating",
                "rating_count",
                "count",
                "scale",
                "distribution",
                "observed_on",
                "themes"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/offers",
            "name": "Offers",
            "optional": true,
            "description": "A contract for a later priced offer. It is not part of a core business schema. A service, a treatment, or a free or paid facility is not an offer by itself. The contract can record the item offered, the seller, the price and its currency, availability, the start and end dates, and the conditions. Live prices and bookings are not included.",
            "fields": [
                "item",
                "seller",
                "price",
                "currency",
                "availability",
                "valid_from",
                "valid_through",
                "conditions"
            ]
        }
    ]
}
