{
  "@context": {
    "@vocab": "https://dishdirectory.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "dishdirectory": "https://dishdirectory.com/schema#",
    "Error": "dishdirectory:Error",
    "error": {
      "@id": "dishdirectory:error",
      "@type": "xsd:string"
    },
    "code": {
      "@id": "dishdirectory:code",
      "@type": "xsd:string"
    },
    "details": {
      "@id": "dishdirectory:details",
      "@container": "@list"
    },
    "Meta": "dishdirectory:Meta",
    "attribution": {
      "@id": "dishdirectory:attribution"
    },
    "sources": {
      "@id": "dishdirectory:sources",
      "@container": "@list"
    },
    "Source": "dishdirectory:Source",
    "licenseUrl": {
      "@id": "dishdirectory:licenseUrl",
      "@type": "xsd:string"
    },
    "attributionRequired": {
      "@id": "dishdirectory:attributionRequired",
      "@type": "xsd:boolean"
    },
    "key": {
      "@id": "dishdirectory:key",
      "@type": "xsd:string"
    },
    "name": {
      "@id": "dishdirectory:name",
      "@type": "xsd:string"
    },
    "url": {
      "@id": "dishdirectory:url",
      "@type": "xsd:string"
    },
    "license": {
      "@id": "dishdirectory:license",
      "@type": "xsd:string"
    },
    "refresh": {
      "@id": "dishdirectory:refresh",
      "@type": "xsd:string"
    },
    "notes": {
      "@id": "dishdirectory:notes",
      "@type": "xsd:string"
    },
    "ListingItem": "dishdirectory:ListingItem",
    "slug": {
      "@id": "dishdirectory:slug",
      "@type": "xsd:string"
    },
    "path": {
      "@id": "dishdirectory:path",
      "@type": "xsd:string"
    },
    "country": {
      "@id": "dishdirectory:country",
      "@type": "xsd:string"
    },
    "region": {
      "@id": "dishdirectory:region",
      "@type": "xsd:string"
    },
    "regionSlug": {
      "@id": "dishdirectory:regionSlug",
      "@type": "xsd:string"
    },
    "city": {
      "@id": "dishdirectory:city",
      "@type": "xsd:string"
    },
    "citySlug": {
      "@id": "dishdirectory:citySlug",
      "@type": "xsd:string"
    },
    "categories": {
      "@id": "dishdirectory:categories",
      "@container": "@list"
    },
    "tier": {
      "@id": "dishdirectory:tier",
      "@type": "xsd:string"
    },
    "lat": {
      "@id": "dishdirectory:lat",
      "@type": "xsd:decimal"
    },
    "lng": {
      "@id": "dishdirectory:lng",
      "@type": "xsd:decimal"
    },
    "completeness": {
      "@id": "dishdirectory:completeness",
      "@type": "xsd:integer"
    },
    "attributes": {
      "@id": "dishdirectory:attributes"
    },
    "Listing": "dishdirectory:Listing",
    "description": {
      "@id": "dishdirectory:description",
      "@type": "xsd:string"
    },
    "street": {
      "@id": "dishdirectory:street",
      "@type": "xsd:string"
    },
    "street2": {
      "@id": "dishdirectory:street2",
      "@type": "xsd:string"
    },
    "postalCode": {
      "@id": "dishdirectory:postalCode",
      "@type": "xsd:string"
    },
    "phone": {
      "@id": "dishdirectory:phone",
      "@type": "xsd:string"
    },
    "website": {
      "@id": "dishdirectory:website",
      "@type": "xsd:string"
    },
    "currency": {
      "@id": "dishdirectory:currency",
      "@type": "xsd:string"
    },
    "language": {
      "@id": "dishdirectory:language",
      "@type": "xsd:string"
    },
    "verified": {
      "@id": "dishdirectory:verified",
      "@type": "xsd:boolean"
    },
    "source": {
      "@id": "dishdirectory:source"
    },
    "published": {
      "@id": "dishdirectory:published",
      "@type": "xsd:string"
    },
    "updated": {
      "@id": "dishdirectory:updated",
      "@type": "xsd:string"
    },
    "Page": "dishdirectory:Page",
    "limit": {
      "@id": "dishdirectory:limit",
      "@type": "xsd:integer"
    },
    "total": {
      "@id": "dishdirectory:total",
      "@type": "xsd:integer"
    },
    "nextCursor": {
      "@id": "dishdirectory:nextCursor",
      "@type": "xsd:string"
    },
    "capped": {
      "@id": "dishdirectory:capped",
      "@type": "xsd:boolean"
    },
    "fuzzy": {
      "@id": "dishdirectory:fuzzy",
      "@type": "xsd:boolean"
    },
    "PlaceNode": "dishdirectory:PlaceNode",
    "kind": {
      "@id": "dishdirectory:kind",
      "@type": "xsd:string"
    },
    "count": {
      "@id": "dishdirectory:count",
      "@type": "xsd:integer"
    },
    "children": {
      "@id": "dishdirectory:children",
      "@container": "@list"
    },
    "CategoryNode": "dishdirectory:CategoryNode",
    "Stats": "dishdirectory:Stats",
    "listings": {
      "@id": "dishdirectory:listings",
      "@type": "xsd:integer"
    },
    "countries": {
      "@id": "dishdirectory:countries",
      "@type": "xsd:integer"
    },
    "regions": {
      "@id": "dishdirectory:regions",
      "@type": "xsd:integer"
    },
    "cities": {
      "@id": "dishdirectory:cities",
      "@type": "xsd:integer"
    },
    "lastUpdated": {
      "@id": "dishdirectory:lastUpdated",
      "@type": "xsd:string"
    },
    "Product": "dishdirectory:Product",
    "category": {
      "@id": "dishdirectory:category",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "dishdirectory:title",
      "@type": "xsd:string"
    },
    "brand": {
      "@id": "dishdirectory:brand",
      "@type": "xsd:string"
    },
    "retailer": {
      "@id": "dishdirectory:retailer",
      "@type": "xsd:string"
    },
    "price_cents": {
      "@id": "dishdirectory:price_cents",
      "@type": "xsd:integer"
    },
    "price_as_of": {
      "@id": "dishdirectory:price_as_of",
      "@type": "xsd:string"
    },
    "image_url": {
      "@id": "dishdirectory:image_url"
    },
    "image_alt": {
      "@id": "dishdirectory:image_alt"
    },
    "image_source": {
      "@id": "dishdirectory:image_source"
    },
    "images": {
      "@id": "dishdirectory:images",
      "@container": "@list"
    },
    "tags": {
      "@id": "dishdirectory:tags",
      "@container": "@list"
    },
    "featured": {
      "@id": "dishdirectory:featured",
      "@type": "xsd:boolean"
    },
    "rank": {
      "@id": "dishdirectory:rank",
      "@type": "xsd:integer"
    },
    "page_url": {
      "@id": "dishdirectory:page_url",
      "@type": "xsd:string"
    },
    "buy_url": {
      "@id": "dishdirectory:buy_url",
      "@type": "xsd:string"
    },
    "ProductCategory": "dishdirectory:ProductCategory",
    "group": {
      "@id": "dishdirectory:group"
    },
    "product_count": {
      "@id": "dishdirectory:product_count",
      "@type": "xsd:integer"
    },
    "Certificate": "dishdirectory:Certificate",
    "status": {
      "@id": "dishdirectory:status",
      "@type": "xsd:string"
    },
    "holder": {
      "@id": "dishdirectory:holder",
      "@type": "xsd:string"
    },
    "courseTitle": {
      "@id": "dishdirectory:courseTitle",
      "@type": "xsd:string"
    },
    "level": {
      "@id": "dishdirectory:level",
      "@type": "xsd:string"
    },
    "issuedAt": {
      "@id": "dishdirectory:issuedAt",
      "@type": "xsd:string"
    },
    "expiresAt": {
      "@id": "dishdirectory:expiresAt",
      "@type": "xsd:string"
    },
    "issuer": {
      "@id": "dishdirectory:issuer",
      "@type": "xsd:string"
    },
    "Course": "dishdirectory:Course",
    "summary": {
      "@id": "dishdirectory:summary",
      "@type": "xsd:string"
    },
    "durationMinutes": {
      "@id": "dishdirectory:durationMinutes",
      "@type": "xsd:integer"
    },
    "passMarkPercent": {
      "@id": "dishdirectory:passMarkPercent",
      "@type": "xsd:integer"
    },
    "maxAttempts": {
      "@id": "dishdirectory:maxAttempts",
      "@type": "xsd:integer"
    },
    "validityMonths": {
      "@id": "dishdirectory:validityMonths"
    },
    "lessonCount": {
      "@id": "dishdirectory:lessonCount",
      "@type": "xsd:integer"
    },
    "questionCount": {
      "@id": "dishdirectory:questionCount",
      "@type": "xsd:integer"
    },
    "CourseDetail": "dishdirectory:CourseDetail",
    "objectives": {
      "@id": "dishdirectory:objectives",
      "@container": "@list"
    },
    "faq": {
      "@id": "dishdirectory:faq",
      "@container": "@list"
    },
    "lessons": {
      "@id": "dishdirectory:lessons",
      "@container": "@list"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Dish Directory API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Dish Directory's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-05) from openapi/dishdirectory-com-openapi.json.",
  "dcterms:created": "2026-11-05",
  "dcterms:source": [
    "openapi/dishdirectory-com-openapi.json"
  ]
}