{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Restaurant Listing", "description": "Restaurant profile and details from a dining review platform or local business directory.", "type": "object", "properties": { "name": { "type": "string", "description": "Name of the restaurant. Commonly found in: Yelp, Google Maps, OpenTable, TripAdvisor." }, "cuisine_type": { "type": "array", "items": { "type": "string" }, "description": "Types of cuisine served. Commonly found in: Yelp categories, Google Maps cuisine tags." }, "price_range": { "type": "number", "description": "Price range indicator (e.g., 1-4 dollar signs). Commonly found in: Yelp price range, Google Maps price level." }, "address": { "type": "string", "description": "Street address of the restaurant. Commonly found in: Yelp, Google Maps, restaurant website." }, "city": { "type": "string", "description": "City of the restaurant. Commonly found in: Yelp, Google Maps." }, "state": { "type": "string", "description": "State or region of the restaurant. Commonly found in: Yelp, Google Maps." }, "country": { "type": "string", "description": "Country of the restaurant. Commonly found in: Yelp, Google Maps." }, "latitude": { "type": "number", "description": "Latitude coordinate. Commonly found in: Google Maps, geocoding API." }, "longitude": { "type": "number", "description": "Longitude coordinate. Commonly found in: Google Maps, geocoding API." }, "phone": { "type": "string", "description": "Restaurant phone number. Commonly found in: Yelp, Google Maps, restaurant website." }, "website": { "type": "string", "description": "Restaurant website URL. Commonly found in: Yelp, Google Maps, restaurant website." }, "accepts_reservations": { "type": "boolean", "description": "Whether the restaurant accepts reservations. Commonly found in: Yelp, OpenTable, restaurant website." }, "reservation_url": { "type": "string", "description": "URL for making reservations. Commonly found in: OpenTable link, Resy link, restaurant website." }, "outdoor_seating": { "type": "boolean", "description": "Whether outdoor seating is available. Commonly found in: Yelp attributes, Google Maps." }, "delivery_available": { "type": "boolean", "description": "Whether delivery is available. Commonly found in: Yelp, Google Maps, delivery platform." }, "delivery_platforms": { "type": "array", "items": { "type": "string" }, "description": "Delivery platforms the restaurant is on. Commonly found in: DoorDash, Uber Eats, Grubhub listing." }, "takeout_available": { "type": "boolean", "description": "Whether takeout is available. Commonly found in: Yelp attributes, Google Maps." }, "alcohol_license": { "type": "boolean", "description": "Whether the restaurant serves alcohol. Commonly found in: Yelp attributes, restaurant website." }, "michelin_stars": { "type": "number", "description": "Number of Michelin stars. Commonly found in: Michelin Guide, restaurant website." }, "review_rating": { "type": "number", "description": "Average review rating. Commonly found in: Yelp rating, Google Maps rating, TripAdvisor." }, "review_count": { "type": "number", "description": "Total number of reviews. Commonly found in: Yelp, Google Maps, TripAdvisor." }, "top_dishes": { "type": "array", "items": { "type": "string" }, "description": "Most popular or recommended dishes. Commonly found in: Yelp popular dishes, Google Maps popular dishes." }, "menu_url": { "type": "string", "description": "URL to the restaurant's menu. Commonly found in: restaurant website, Yelp menu link." }, "photos": { "type": "array", "items": { "type": "string" }, "description": "URLs of restaurant photos. Commonly found in: Yelp photos, Google Maps photos." }, "attributes": { "type": "array", "items": { "type": "string" }, "description": "Additional attributes or tags. Commonly found in: Yelp attributes, Google Maps features." }, "page_title": { "type": "string", "description": "Title of the source page. Tabstack auto-fills this from page metadata when left empty." }, "favicon": { "type": "string", "format": "uri", "description": "Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty." } }, "required": ["name", "city", "country"] }