{
  "@context": {
    "@vocab": "https://emile.wine/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "emile": "https://emile.wine/schema#",
    "BatchBottlesRequest": "emile:BatchBottlesRequest",
    "bottles": {
      "@id": "emile:bottles",
      "@container": "@list"
    },
    "Body_introspect_oauth_introspect_post": "emile:Body_introspect_oauth_introspect_post",
    "token": {
      "@id": "emile:token",
      "@type": "xsd:string"
    },
    "Body_revoke_oauth_revoke_post": "emile:Body_revoke_oauth_revoke_post",
    "token_type_hint": {
      "@id": "emile:token_type_hint"
    },
    "client_id": {
      "@id": "emile:client_id"
    },
    "client_secret": {
      "@id": "emile:client_secret"
    },
    "Body_scan_batch_me_scan_batch_post": "emile:Body_scan_batch_me_scan_batch_post",
    "files": {
      "@id": "emile:files",
      "@container": "@list"
    },
    "Body_scan_label_scan_post": "emile:Body_scan_label_scan_post",
    "file": {
      "@id": "emile:file",
      "@type": "xsd:string"
    },
    "Body_token_oauth_token_post": "emile:Body_token_oauth_token_post",
    "grant_type": {
      "@id": "emile:grant_type",
      "@type": "xsd:string"
    },
    "code": {
      "@id": "emile:code"
    },
    "redirect_uri": {
      "@id": "emile:redirect_uri"
    },
    "code_verifier": {
      "@id": "emile:code_verifier"
    },
    "refresh_token": {
      "@id": "emile:refresh_token"
    },
    "Body_upload_location_photo_cellars__cellar_id__bottles__bottle_id__photo_post": "emile:Body_upload_location_photo_cellars__cellar_id__bottles__bottle_id__photo_post",
    "BottleCreate": "emile:BottleCreate",
    "wine_reference_id": {
      "@id": "emile:wine_reference_id"
    },
    "vintage": {
      "@id": "emile:vintage"
    },
    "quantity": {
      "@id": "emile:quantity",
      "@type": "xsd:integer"
    },
    "location_text": {
      "@id": "emile:location_text"
    },
    "location_photo_url": {
      "@id": "emile:location_photo_url"
    },
    "purchase_price": {
      "@id": "emile:purchase_price"
    },
    "notes": {
      "@id": "emile:notes"
    },
    "BottleSpec": "emile:BottleSpec",
    "cellar_id": {
      "@id": "emile:cellar_id",
      "@type": "xsd:string"
    },
    "BottleUpdate": "emile:BottleUpdate",
    "status": {
      "@id": "emile:status"
    },
    "BulkInsertRequest": "emile:BulkInsertRequest",
    "chunks": {
      "@id": "emile:chunks",
      "@container": "@list"
    },
    "CellarCreate": "emile:CellarCreate",
    "name": {
      "@id": "emile:name",
      "@type": "xsd:string"
    },
    "location_description": {
      "@id": "emile:location_description"
    },
    "capacity_hint": {
      "@id": "emile:capacity_hint"
    },
    "storage_type": {
      "@id": "emile:storage_type",
      "@type": "xsd:string"
    },
    "CellarUpdate": "emile:CellarUpdate",
    "ClientPublicResponse": "emile:ClientPublicResponse",
    "logo_uri": {
      "@id": "emile:logo_uri"
    },
    "scope_description": {
      "@id": "emile:scope_description",
      "@type": "xsd:string"
    },
    "CreateKeyRequest": "emile:CreateKeyRequest",
    "CreateKeyResponse": "emile:CreateKeyResponse",
    "id": {
      "@id": "emile:id",
      "@type": "xsd:string"
    },
    "key": {
      "@id": "emile:key",
      "@type": "xsd:string"
    },
    "prefix": {
      "@id": "emile:prefix",
      "@type": "xsd:string"
    },
    "created_at": {
      "@id": "emile:created_at",
      "@type": "xsd:dateTime"
    },
    "FilterCriteriaPayload": "emile:FilterCriteriaPayload",
    "colors": {
      "@id": "emile:colors",
      "@container": "@list"
    },
    "window": {
      "@id": "emile:window",
      "@type": "xsd:string"
    },
    "statuses": {
      "@id": "emile:statuses",
      "@container": "@list"
    },
    "regions": {
      "@id": "emile:regions",
      "@container": "@list"
    },
    "countries": {
      "@id": "emile:countries",
      "@container": "@list"
    },
    "grapes": {
      "@id": "emile:grapes",
      "@container": "@list"
    },
    "price_min": {
      "@id": "emile:price_min"
    },
    "price_max": {
      "@id": "emile:price_max"
    },
    "full_text": {
      "@id": "emile:full_text",
      "@type": "xsd:string"
    },
    "GrantRequest": "emile:GrantRequest",
    "scope": {
      "@id": "emile:scope",
      "@type": "xsd:string"
    },
    "state": {
      "@id": "emile:state"
    },
    "code_challenge": {
      "@id": "emile:code_challenge"
    },
    "code_challenge_method": {
      "@id": "emile:code_challenge_method"
    },
    "GrantResponse": "emile:GrantResponse",
    "redirect_to": {
      "@id": "emile:redirect_to",
      "@type": "xsd:string"
    },
    "HTTPValidationError": "emile:HTTPValidationError",
    "detail": {
      "@id": "emile:detail",
      "@container": "@list"
    },
    "IntrospectionResponse": "emile:IntrospectionResponse",
    "active": {
      "@id": "emile:active",
      "@type": "xsd:boolean"
    },
    "user_id": {
      "@id": "emile:user_id"
    },
    "exp": {
      "@id": "emile:exp"
    },
    "KnowledgeChunk": "emile:KnowledgeChunk",
    "source": {
      "@id": "emile:source",
      "@type": "xsd:string"
    },
    "source_url": {
      "@id": "emile:source_url"
    },
    "content_text": {
      "@id": "emile:content_text",
      "@type": "xsd:string"
    },
    "content_embedding": {
      "@id": "emile:content_embedding"
    },
    "language": {
      "@id": "emile:language",
      "@type": "xsd:string"
    },
    "pillar": {
      "@id": "emile:pillar",
      "@type": "xsd:string"
    },
    "topic": {
      "@id": "emile:topic"
    },
    "token_count": {
      "@id": "emile:token_count"
    },
    "ProfileUpdate": "emile:ProfileUpdate",
    "first_name": {
      "@id": "emile:first_name"
    },
    "last_name": {
      "@id": "emile:last_name"
    },
    "phone": {
      "@id": "emile:phone"
    },
    "RecommendationRequest": "emile:RecommendationRequest",
    "maturity": {
      "@id": "emile:maturity",
      "@type": "xsd:boolean"
    },
    "food": {
      "@id": "emile:food"
    },
    "filters": {
      "@id": "emile:filters"
    },
    "RegisterRequest": "emile:RegisterRequest",
    "client_name": {
      "@id": "emile:client_name",
      "@type": "xsd:string"
    },
    "redirect_uris": {
      "@id": "emile:redirect_uris",
      "@container": "@list"
    },
    "grant_types": {
      "@id": "emile:grant_types"
    },
    "response_types": {
      "@id": "emile:response_types"
    },
    "RegisterResponse": "emile:RegisterResponse",
    "client_id_issued_at": {
      "@id": "emile:client_id_issued_at",
      "@type": "xsd:integer"
    },
    "client_secret_expires_at": {
      "@id": "emile:client_secret_expires_at",
      "@type": "xsd:integer"
    },
    "token_endpoint_auth_method": {
      "@id": "emile:token_endpoint_auth_method",
      "@type": "xsd:string"
    },
    "RenderRequest": "emile:RenderRequest",
    "markdown": {
      "@id": "emile:markdown",
      "@type": "xsd:string"
    },
    "slug": {
      "@id": "emile:slug",
      "@type": "xsd:string"
    },
    "target_keyword": {
      "@id": "emile:target_keyword",
      "@type": "xsd:string"
    },
    "date_iso": {
      "@id": "emile:date_iso",
      "@type": "xsd:string"
    },
    "description": {
      "@id": "emile:description",
      "@type": "xsd:string"
    },
    "equivalent_url": {
      "@id": "emile:equivalent_url"
    },
    "equivalent_lang": {
      "@id": "emile:equivalent_lang"
    },
    "SearchQuery": "emile:SearchQuery",
    "query": {
      "@id": "emile:query",
      "@type": "xsd:string"
    },
    "pillars": {
      "@id": "emile:pillars"
    },
    "top_k": {
      "@id": "emile:top_k",
      "@type": "xsd:integer"
    },
    "TokenResponse": "emile:TokenResponse",
    "access_token": {
      "@id": "emile:access_token",
      "@type": "xsd:string"
    },
    "token_type": {
      "@id": "emile:token_type",
      "@type": "xsd:string"
    },
    "expires_in": {
      "@id": "emile:expires_in",
      "@type": "xsd:integer"
    },
    "ValidationError": "emile:ValidationError",
    "loc": {
      "@id": "emile:loc",
      "@container": "@list"
    },
    "msg": {
      "@id": "emile:msg",
      "@type": "xsd:string"
    },
    "type": {
      "@id": "emile:type",
      "@type": "xsd:string"
    },
    "input": {
      "@id": "emile:input"
    },
    "ctx": {
      "@id": "emile:ctx"
    },
    "WineCreate": "emile:WineCreate",
    "producer": {
      "@id": "emile:producer"
    },
    "appellation": {
      "@id": "emile:appellation"
    },
    "region": {
      "@id": "emile:region"
    },
    "country": {
      "@id": "emile:country"
    },
    "color": {
      "@id": "emile:color"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Émile API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Émile'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-06) from openapi/emile-wine-openapi.json.",
  "dcterms:created": "2026-11-06",
  "dcterms:source": [
    "openapi/emile-wine-openapi.json"
  ]
}