{"openapi":"3.1.0","info":{"title":"Private Chef in Aruba planning and guest-approved operations","version":"1.3.0","description":"First-party Chef menu arithmetic, assessment and approved public knowledge. No availability calendar, autonomous booking, charge or refund. Existing agreements stay authoritative."},"servers":[{"url":"https://privatechefinaruba.com/api/v1"}],"paths":{"/menus.php":{"get":{"operationId":"get_chef_menus","summary":"Read the current 11-menu catalog, choice and add-on IDs, fee rules, accepted policy and requirement limits before planning. Not live availability.","responses":{"200":{"description":"A verified result. Quotes do not check availability; pending requests are never completed actions.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"parameters":[{"name":"menu_id","in":"query","required":false,"schema":{"type":"string","enum":["taco-night","barbecue-feast","bali-hibachi-night","classic-dinner","premium-dinner","deluxe-dinner","classic-breakfast","chefs-breakfast","breakfast-feast","brunch","floating-board"],"description":"Optional: retrieve only one menu. Omit to retrieve all 11."}}]}},"/quote.php":{"post":{"operationId":"quote_chef_meal","summary":"Calculate the exact shared-calculator price for a complete eligible meal selection. Incomplete choices, price-on-request items, known holiday meals and custom-menu exceptions have no exact total. Does not check availability or reserve a date.","responses":{"200":{"description":"Verified tool result with explicit state and authority boundaries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChefPlan"}}}}}},"/assess.php":{"post":{"operationId":"assess_chef_request","summary":"Assess missing choices, schedule, dietary and kitchen uncertainty. Every request needs staff availability confirmation and a 50% deposit before the date is reserved. No inventory check, booking or payment.","responses":{"200":{"description":"Verified tool result with explicit state and authority boundaries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Assessment"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChefPlan"}}}}}},"/handoff.php":{"post":{"operationId":"prepare_chef_booking_link","summary":"Prepare an editable public plan link for guest review. The guest supplies details and consent on the website. No request, reservation, mail, card save or charge.","responses":{"200":{"description":"Verified tool result with explicit state and authority boundaries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Handoff"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChefPlan"}}}}}},"/question.php":{"post":{"operationId":"send_chef_question","summary":"With explicit guest permission, send a question and reply email to the Chef team. Receipt means mail-transport acceptance, not staff confirmation. Keep request_id and identical content on retries; never resend under a new ID after uncertainty. No booking, card or payment action. Never send card data.","responses":{"200":{"description":"Verified tool result with explicit state and authority boundaries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionResult"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","description":"Random UUID v4. Preserve unchanged for identical retries."},"name":{"type":"string","maxLength":160},"reply_email":{"type":"string","format":"email","maxLength":254},"question":{"type":"string","minLength":5,"maxLength":4000},"customer_authorized":{"type":"boolean","const":true,"description":"Only after the guest explicitly approves this action and sharing the supplied details."}},"required":["request_id","reply_email","question","customer_authorized"],"additionalProperties":false}}}}}},"/answers-search.php":{"get":{"operationId":"search_public_answers","summary":"Search approved public answers. Returns exact text, citations, review dates and all required related answers. No matching answer means ask the team, not guess.","responses":{"200":{"description":"Complete approved answer(s), citations and required related context","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAnswerSearch"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"name":"service","in":"query","required":false,"schema":{"type":"string","enum":["chef"]}}]}},"/answer.php":{"get":{"operationId":"get_public_answer","summary":"Retrieve one approved public answer by exact ID, including required related context. Unknown and non-public IDs are indistinguishable.","responses":{"200":{"description":"Complete approved answer(s), citations and required related context","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAnswerLookup"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}},"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}]}},"/operation.php":{"post":{"operationId":"chef_operation","summary":"Guest-approved draft, outcome or delegated reservation operation. Credentials only in JSON bodies.","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"required":["operation","arguments"],"properties":{"operation":{"const":"create_draft"},"arguments":{"type":"object","properties":{"request_key":{"type":"string","pattern":"^[a-f0-9]{64}$"},"plan":{"$ref":"#/components/schemas/ChefPlan"},"guest":{"type":"object","properties":{"first_name":{"type":"string","maxLength":80},"last_name":{"type":"string","maxLength":80},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","maxLength":40},"property":{"type":"string","maxLength":250},"location_type":{"type":"string","enum":["Villa","Condo","Hotel","Other"]},"special_requests":{"type":"string","maxLength":1000}},"required":[],"additionalProperties":false},"customer_authorized":{"type":"boolean","const":true,"description":"Only after the guest explicitly approves this action and sharing the supplied details."}},"required":["request_key","plan","customer_authorized"],"additionalProperties":false}}},{"type":"object","additionalProperties":false,"required":["operation","arguments"],"properties":{"operation":{"const":"outcome"},"arguments":{"type":"object","properties":{"operation_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"operation_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["operation_id","operation_token"],"additionalProperties":false}}},{"type":"object","additionalProperties":false,"required":["operation","arguments"],"properties":{"operation":{"const":"begin_access"},"arguments":{"type":"object","properties":{"request_key":{"type":"string","pattern":"^[a-f0-9]{64}$"},"booking_reference":{"type":"string","maxLength":40},"assistant_name":{"type":"string","maxLength":80},"customer_authorized":{"type":"boolean","const":true,"description":"Only after the guest explicitly approves this action and sharing the supplied details."}},"required":["request_key","booking_reference","customer_authorized"],"additionalProperties":false}}},{"type":"object","additionalProperties":false,"required":["operation","arguments"],"properties":{"operation":{"const":"reservation"},"arguments":{"type":"object","properties":{"operation_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"operation_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["operation_id","operation_token"],"additionalProperties":false}}},{"type":"object","additionalProperties":false,"required":["operation","arguments"],"properties":{"operation":{"const":"preview_request"},"arguments":{"type":"object","properties":{"operation_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"operation_token":{"type":"string","pattern":"^[a-f0-9]{64}$"},"request_id":{"type":"string","format":"uuid","description":"Random UUID v4. Preserve unchanged for identical retries."},"change":{"type":"object","properties":{"kind":{"type":"string","enum":["property","schedule","cancel"]},"property":{"type":"string","maxLength":250},"location_type":{"type":"string","enum":["Villa","Condo","Hotel","Other"]},"service_date":{"type":"string","format":"date"},"preferred_start_time":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$"},"note":{"type":"string","maxLength":1000}},"required":["kind"],"additionalProperties":false,"oneOf":[{"type":"object","properties":{"kind":{"const":"property"},"property":{"type":"string","maxLength":250},"location_type":{"type":"string","enum":["Villa","Condo","Hotel","Other"]},"note":{"type":"string","maxLength":1000}},"required":["kind","property"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"schedule"},"service_date":{"type":"string","format":"date"},"preferred_start_time":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$"},"note":{"type":"string","maxLength":1000}},"required":["kind","service_date","preferred_start_time"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"cancel"},"note":{"type":"string","maxLength":1000}},"required":["kind"],"additionalProperties":false}]}},"required":["operation_id","operation_token","request_id","change"],"additionalProperties":false}}},{"type":"object","additionalProperties":false,"required":["operation","arguments"],"properties":{"operation":{"const":"submit_request"},"arguments":{"type":"object","properties":{"operation_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"operation_token":{"type":"string","pattern":"^[a-f0-9]{64}$"},"proposal_token":{"type":"string","maxLength":12000},"customer_authorized":{"type":"boolean","const":true,"description":"Only after the guest explicitly approves this action and sharing the supplied details."}},"required":["operation_id","operation_token","proposal_token","customer_authorized"],"additionalProperties":false}}}]}}}},"responses":{"200":{"description":"Guest-approved operation state, never assumed confirmation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationResult"}}}},"400":{"description":"Malformed input"},"403":{"description":"Origin or authorization rejected"},"404":{"description":"Public answer not found; private and unknown IDs are indistinguishable"},"413":{"description":"Input or complete answer context exceeds the bounded response"},"422":{"description":"Invalid documented fields"},"429":{"description":"Rate limit"},"503":{"description":"Service temporarily unavailable; preserve IDs when retrying"}}}}},"components":{"schemas":{"PublicAnswer":{"type":"object","additionalProperties":false,"required":["id","question","answer","topic","service","url","sources","checked_on","review_due","read_with"],"properties":{"id":{"type":"string","maxLength":80},"question":{"type":"string"},"answer":{"type":"string"},"topic":{"type":"string"},"service":{"type":"string"},"url":{"type":"string","format":"uri","maxLength":2048},"sources":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048}},"checked_on":{"type":["string","null"],"format":"date"},"review_due":{"type":["string","null"],"format":"date"},"read_with":{"type":"array","items":{"type":"string"}}}},"PublicAnswerSearch":{"type":"object","additionalProperties":false,"required":["schema_version","collection_revision","status","ok","help_url"],"properties":{"schema_version":{"const":1},"collection_revision":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"status":{"enum":["ok","no_results","not_found","context_too_large"]},"ok":{"type":"boolean"},"help_url":{"type":"string","format":"uri","maxLength":2048},"http_status":{"enum":[404,413]},"message":{"type":"string"},"citations":{"type":"array","items":{"type":"object","required":["id","url"],"properties":{"id":{"type":"string"},"url":{"type":"string","format":"uri","maxLength":2048}}}},"related_answers":{"type":"array","items":{"$ref":"#/components/schemas/PublicAnswer"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicAnswer"}}},"oneOf":[{"properties":{"status":{"enum":["ok","no_results"]},"ok":{"const":true}},"required":["results","related_answers"]},{"properties":{"status":{"const":"context_too_large"},"ok":{"const":false}},"required":["citations","http_status"]}]},"PublicAnswerLookup":{"type":"object","additionalProperties":false,"required":["schema_version","collection_revision","status","ok","help_url"],"properties":{"schema_version":{"const":1},"collection_revision":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"status":{"enum":["ok","no_results","not_found","context_too_large"]},"ok":{"type":"boolean"},"help_url":{"type":"string","format":"uri","maxLength":2048},"http_status":{"enum":[404,413]},"message":{"type":"string"},"citations":{"type":"array","items":{"type":"object","required":["id","url"],"properties":{"id":{"type":"string"},"url":{"type":"string","format":"uri","maxLength":2048}}}},"related_answers":{"type":"array","items":{"$ref":"#/components/schemas/PublicAnswer"}},"answer":{"$ref":"#/components/schemas/PublicAnswer"}},"oneOf":[{"properties":{"status":{"const":"ok"},"ok":{"const":true}},"required":["answer","related_answers"]},{"properties":{"status":{"const":"not_found"},"ok":{"const":false}},"required":["http_status"]},{"properties":{"status":{"const":"context_too_large"},"ok":{"const":false}},"required":["citations","http_status"]}]},"Quote":{"type":"object","properties":{"api_version":{"type":"string"},"catalog_version":{"type":"string"},"pricing_version":{"type":"string"},"consent_version":{"type":"string"},"quoted_at":{"type":"string","format":"date-time"},"source":{"type":"string","format":"uri"},"plan":{"$ref":"#/components/schemas/ChefPlan"},"quote":{"$ref":"#/components/schemas/Price"},"status":{"enum":["quote_only","team_review_required","incomplete_selection"]},"money_unit":{"const":"whole_USD"},"timezone":{"const":"America/Aruba"},"schedule_validated":{"type":"boolean"},"availability_checked":{"const":false},"booking_created":{"const":false},"request_submitted":{"const":false},"amount_charged":{"const":0},"missing_before_request":{"type":"array","items":{"type":"string"}},"assessment":{"type":"object","properties":{"expected_confirmation_mode":{"const":"staff_availability_then_deposit"},"reservation_status":{"const":"not_created"},"availability_checked":{"const":false},"requirements_confirmed":{"const":false},"requirement_checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["vegetarian","vegan","gluten_free","allergy","halal","kosher","medical_diet","kitchen_uncertain","outdoor","accessibility","custom_menu"]},"status":{"const":"needs_confirmation"},"message":{"type":"string"},"source_answer_ids":{"type":"array","items":{"type":"string"}},"source_urls":{"type":"array","items":{"type":"string","format":"uri"}}},"required":["id","status","message","source_answer_ids","source_urls"],"additionalProperties":false}},"holiday":{"type":"object","properties":{"date_known":{"type":"boolean"},"applies":{"type":"boolean"},"base_surcharge_usd":{"type":"integer","minimum":0},"source_answer_ids":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}},"required":["date_known","applies","base_surcharge_usd","source_answer_ids","message"],"additionalProperties":false},"kitchen":{"type":"object","properties":{"status":{"enum":["not_verified","not_required","site_review_required"]},"message":{"type":"string"},"source_answer_ids":{"type":"array","items":{"type":"string"}}},"required":["status","message","source_answer_ids"],"additionalProperties":false},"reason_codes":{"type":"array","items":{"type":"string"}},"source_urls":{"type":"array","items":{"type":"string","format":"uri"}},"note":{"type":"string"}},"required":["expected_confirmation_mode","reservation_status","availability_checked","requirements_confirmed","requirement_checks","kitchen","holiday","reason_codes","source_urls","note"],"additionalProperties":false},"next_step":{"type":"string"},"cautions":{"type":"array","items":{"type":"string"}},"recheck_price_at_booking":{"const":true}},"required":["api_version","catalog_version","pricing_version","consent_version","quoted_at","source","plan","quote","status","money_unit","timezone","schedule_validated","availability_checked","booking_created","request_submitted","amount_charged","missing_before_request","assessment","next_step","cautions","recheck_price_at_booking"],"additionalProperties":false},"Assessment":{"$ref":"#/components/schemas/Quote"},"Handoff":{"type":"object","properties":{"api_version":{"type":"string"},"catalog_version":{"type":"string"},"pricing_version":{"type":"string"},"consent_version":{"type":"string"},"quoted_at":{"type":"string","format":"date-time"},"source":{"type":"string","format":"uri"},"plan":{"$ref":"#/components/schemas/ChefPlan"},"quote":{"$ref":"#/components/schemas/Price"},"status":{"enum":["quote_only","team_review_required","incomplete_selection"]},"money_unit":{"const":"whole_USD"},"timezone":{"const":"America/Aruba"},"schedule_validated":{"type":"boolean"},"availability_checked":{"const":false},"booking_created":{"const":false},"request_submitted":{"const":false},"amount_charged":{"const":0},"missing_before_request":{"type":"array","items":{"type":"string"}},"assessment":{"type":"object","properties":{"expected_confirmation_mode":{"const":"staff_availability_then_deposit"},"reservation_status":{"const":"not_created"},"availability_checked":{"const":false},"requirements_confirmed":{"const":false},"requirement_checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["vegetarian","vegan","gluten_free","allergy","halal","kosher","medical_diet","kitchen_uncertain","outdoor","accessibility","custom_menu"]},"status":{"const":"needs_confirmation"},"message":{"type":"string"},"source_answer_ids":{"type":"array","items":{"type":"string"}},"source_urls":{"type":"array","items":{"type":"string","format":"uri"}}},"required":["id","status","message","source_answer_ids","source_urls"],"additionalProperties":false}},"holiday":{"type":"object","properties":{"date_known":{"type":"boolean"},"applies":{"type":"boolean"},"base_surcharge_usd":{"type":"integer","minimum":0},"source_answer_ids":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}},"required":["date_known","applies","base_surcharge_usd","source_answer_ids","message"],"additionalProperties":false},"kitchen":{"type":"object","properties":{"status":{"enum":["not_verified","not_required","site_review_required"]},"message":{"type":"string"},"source_answer_ids":{"type":"array","items":{"type":"string"}}},"required":["status","message","source_answer_ids"],"additionalProperties":false},"reason_codes":{"type":"array","items":{"type":"string"}},"source_urls":{"type":"array","items":{"type":"string","format":"uri"}},"note":{"type":"string"}},"required":["expected_confirmation_mode","reservation_status","availability_checked","requirements_confirmed","requirement_checks","kitchen","holiday","reason_codes","source_urls","note"],"additionalProperties":false},"next_step":{"type":"string"},"cautions":{"type":"array","items":{"type":"string"}},"recheck_price_at_booking":{"const":true},"handoff":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"status":{"const":"guest_review_required"},"creates_booking":{"const":false},"expires_at":{"type":"null"},"note":{"type":"string"}},"required":["url","status","creates_booking","expires_at","note"],"additionalProperties":false}},"required":["api_version","catalog_version","pricing_version","consent_version","quoted_at","source","plan","quote","status","money_unit","timezone","schedule_validated","availability_checked","booking_created","request_submitted","amount_charged","missing_before_request","assessment","next_step","cautions","recheck_price_at_booking","handoff"],"additionalProperties":false},"Price":{"type":"object","required":["state","exact","currency"],"properties":{"state":{"enum":["priced","review","incomplete"]},"exact":{"type":"boolean"},"scope":{"type":"string"},"currency":{"const":"USD"},"custom_quote_required":{"type":"boolean"},"review_reasons":{"type":"array","items":{"type":"string"}},"subtotal":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0},"total_cents":{"type":"integer","minimum":0},"tax_cents":{"type":"integer","minimum":0},"standard_fee_cents":{"type":"integer","minimum":0},"fee_adjustment_cents":{"type":"integer"},"adult_equivalents":{"type":"number","minimum":1},"small_group":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"quantity":{"type":"integer","minimum":0},"unit":{"type":"integer","minimum":0},"amount":{"type":"integer","minimum":0}},"required":["label","quantity","unit","amount"],"additionalProperties":false}},"dishes":{"type":"array","items":{"type":"string"}}},"oneOf":[{"properties":{"state":{"const":"priced"},"exact":{"const":true}},"required":["subtotal","total","total_cents","lines"]},{"properties":{"state":{"enum":["review","incomplete"]},"exact":{"const":false}},"not":{"anyOf":[{"required":["total"]},{"required":["total_cents"]},{"required":["subtotal"]}]}}]},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"status":{"type":"string"},"http_status":{"type":"integer"},"retry_after_seconds":{"type":"integer"},"booking_created":{"const":false}}},"QuestionResult":{"type":"object","properties":{"ok":{"type":"boolean"},"status":{"type":"string"},"reference":{"type":"string"},"message":{"type":"string"},"booking_created":{"const":false},"retry_after_seconds":{"type":"integer"}},"required":["ok","status","message","booking_created"]},"OperationResult":{"type":"object","properties":{"status":{"type":"string"},"operation_id":{"type":"string"},"operation_token":{"type":"string"},"customer_approval_url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"},"request_submitted":{"type":"boolean"},"booking_created":{"type":"boolean"},"action_completed":{"type":"boolean"},"booking_reference":{"type":"string"},"total":{"type":["integer","null"]},"currency":{"const":"USD"},"request_id":{"type":"string"},"proposal_token":{"type":"string"},"next_step":{"type":"string"},"message":{"type":"string"},"quote":{"$ref":"#/components/schemas/Quote"},"reservation":{"type":"object"},"policy":{"type":"object"},"change":{"type":"object"}},"required":["status"]},"ChefPlan":{"type":"object","additionalProperties":false,"properties":{"menu_id":{"type":"string","enum":["taco-night","barbecue-feast","bali-hibachi-night","classic-dinner","premium-dinner","deluxe-dinner","classic-breakfast","chefs-breakfast","breakfast-feast","brunch","floating-board"]},"adults":{"type":"integer","minimum":1,"maximum":999},"children":{"type":"integer","minimum":0,"maximum":999},"infants":{"type":"integer","minimum":0,"maximum":999},"groups":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"extras":{"type":"object"},"board":{"type":"string"},"boardGuests":{"type":"integer","minimum":2,"maximum":14},"service_date":{"type":"string","format":"date"},"preferred_start_time":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$"},"requirements":{"type":"array","items":{"type":"string","enum":["vegetarian","vegan","gluten_free","allergy","halal","kosher","medical_diet","kitchen_uncertain","outdoor","accessibility","custom_menu"]},"uniqueItems":true,"maxItems":11}},"required":["menu_id","adults","children","infants"],"oneOf":[{"properties":{"menu_id":{"const":"taco-night"},"groups":{"properties":{"choose-2-proteins":{"items":{"enum":["chicken-fajitas","shredded-chicken-carnitas","ground-beef","steak-fajitas","shredded-beef-carnitas","stir-fry-fish","garlic-shrimp","breaded-shrimp","calamari","shredded-pork-carnitas"]},"maxItems":2},"choose-2-sides":{"items":{"enum":["corn-bread-sweet","corn-on-the-cob","mexican-street-corn-salad","rice-and-beans","cilantro-lime-rice","tomato-rice","coleslaw","refried-bean-dip","sweet-corn","quinoa-salad","avocado-black-bean-salad","avocado-tomato-salad","cheese-dip","fajita-vegetables","salsa-verde","mango-salad"]},"maxItems":2},"choose-1-dessert":{"items":{"enum":["churros-with-chocolate-and-caramel-sauce","tres-leches-cake","dulce-de-leche-flan","coconut-flan"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"barbecue-feast"},"groups":{"properties":{"choose-5-proteins":{"items":{"enum":["beef-tenderloin","bbq-grilled-chicken","juicy-bbq-ribs","grilled-pork-chop-chorizo","shrimp","salmon"]},"maxItems":5},"choose-5-sides":{"items":{"enum":["baked-potato","rice","french-fries","garlic-bread","corn-on-the-cob","pork-and-beans","green-salad","baked-sweet-potato","mixed-grilled-vegetables"]},"maxItems":5}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"bali-hibachi-night"},"groups":{"properties":{"choose-1-dessert":{"items":{"enum":["matcha-cheesecake","vanilla-ice-cream"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"wagyu":{"type":"integer","minimum":0,"maximum":1}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"classic-dinner"},"groups":{"properties":{"choose-your-appetizer":{"items":{"enum":["loaded-potato-skins","bbq-chicken-wings","mozzarella-sticks","homemade-chips-guacamole","coconut-shrimp","bruschetta","aruban-starters-mini-pastechi-and-empanadas"]},"maxItems":1},"choose-your-salad":{"items":{"enum":["caesar-salad","caprese-salad","garden-salad","mango-salad","coleslaw","mexican-street-corn-salad","avocado-tomato-salad"]},"maxItems":1},"choose-your-main":{"items":{"enum":["classic-cheeseburgers-with-fries","grilled-chicken-with-rice-beans","salmon-alfredo","shrimp-tacos","mac-cheese-with-pulled-pork","chicken-fajitas","jerk-chicken-with-rice-peas"]},"maxItems":1},"choose-your-dessert":{"items":{"enum":["brownies-with-ice-cream","homemade-apple-pie","churros","banana-split","tres-leches-cake","mango-flan"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"premium-dinner"},"groups":{"properties":{"choose-your-appetizer-soup-or-salad":{"items":{"enum":["shrimp-cocktail","chicken-satay","crab-cakes","chef-s-handcrafted-sliders","tuna-tartare","stuffed-mushrooms","bacon-wrapped-scallops","caribbean-spring-rolls","wedge-salad","french-onion-soup","grilled-shrimp-salad","butternut-squash-soup","caprese-salad","aruban-fish-soup"]},"maxItems":1},"choose-your-main":{"items":{"enum":["pan-seared-salmon","chicken-parmesan","shrimp-alfredo","grilled-mahi-mahi","rack-of-bbq-ribs","teriyaki-chicken","caribbean-curry-chicken","aruban-beef-stew","aruban-red-snapper","authentic-aruban-stewed-beef","braised-short-ribs"]},"maxItems":1},"choose-your-dessert":{"items":{"enum":["new-york-cheesecake","creme-brulee","tiramisu","coconut-panna-cotta","pecan-pie","red-velvet-cake","aruba-rum-raisin-bread-pudding","quesillo-flan"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"deluxe-dinner"},"groups":{"properties":{"choose-your-appetizer":{"items":{"enum":["jumbo-lump-crab-cakes","seared-ahi-tuna","stuffed-avocado-shrimp","teriyaki-glazed-pork-belly","korean-ribs","bacon-wrapped-filet-mignon-bites","grilled-octopus","shrimp-crab-stuffed-avocado"]},"maxItems":1},"choose-your-soup-or-salad":{"items":{"enum":["lobster-bisque","traditional-caesar-salad","greek-salad","she-crab-soup","burrata-heirloom-tomato","roasted-beet-salad","seafood-chowder","cream-of-oyster-soup","caribbean-beef-soup","avocado-cobb-salad"]},"maxItems":1},"choose-your-main":{"items":{"enum":["surf-turf-filet-mignon-with-jumbo-shrimp","rib-eye-steak","pan-seared-red-snapper","filet-mignon","rack-of-lamb","grilled-wahoo","grilled-salmon"]},"maxItems":1},"choose-your-starch":{"items":{"enum":["mashed-potatoes","baked-potatoes","toasted-herb-potatoes","white-rice","coconut-rice","mushroom-risotto","saffron-risotto","cheese-risotto","pasta","gnocchi","cilantro-lime-rice"]},"maxItems":1},"choose-your-vegetable":{"items":{"enum":["mixed-vegetables","honey-glazed-carrots","broccoli","zucchini","eggplant","asparagus","plantains"]},"maxItems":1},"choose-your-sauce":{"items":{"enum":["white-wine-cream","creamy-pepper","red-wine","garlic-butter","honey-glaze","lemon-garlic"]},"maxItems":1},"choose-your-dessert":{"items":{"enum":["bananas-foster","new-york-cheesecake","key-lime-tart","molten-chocolate-cake","bread-pudding","creme-brulee","tiramisu","brownie-a-la-mode","red-velvet-cake"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"classic-breakfast"},"groups":{"properties":{"choose-your-breakfast-style":{"items":{"enum":["american-breakfast","healthy-start","aruban-breakfast"]},"maxItems":1},"choose-your-juice":{"items":{"enum":["fresh-mango-juice","fresh-watermelon-juice"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"chefs-breakfast"},"groups":{"properties":{"choose-your-breakfast":{"items":{"enum":["eggs-benedict","belgian-waffles","duo-of-pancakes"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"breakfast-feast"},"groups":{"properties":{"pancakes":{"items":{"enum":["fluffy-pancakes","fruits-cream-pancakes","strawberry-pancakes","nutella-pancakes","fruity-pebbles-pancakes","oreo-cream-pancakes","cheesecake-pancakes","banana-oat-pancakes"]},"maxItems":1},"waffles":{"items":{"enum":["nutella-waffles","fruity-pebbles-waffles","oreo-cream-waffles","strawberry-waffles","fruity-cream-waffles","bacon-waffles-combo"]},"maxItems":1},"eggs":{"items":{"enum":["scrambled-eggs","scrambled-eggs-with-cheese","plain-omelette","omelette-with-cheese","fried-egg","sunny-side-egg","boiled-egg"]},"maxItems":1},"bagels":{"items":{"enum":["smoked-salmon-bagel","avocado-toast-bagel","nutella-banana-bagel"]},"maxItems":1},"sausage":{"items":{"enum":["pork-sausage","turkey-sausage","vegan-breakfast-sausage"]},"maxItems":1},"bacon":{"items":{"enum":["pork-bacon","turkey-bacon","vegan-bacon"]},"maxItems":1},"potatoes":{"items":{"enum":["breakfast-potatoes","hashbrowns","patatas-bravas"]},"maxItems":1},"bread":{"items":{"enum":["croissant","white-bread","whole-wheat-bread","bagels"]},"maxItems":1},"drinks":{"items":{"enum":["orange-juice","apple-juice","peach-juice","mango-juice","pineapple-juice"]},"maxItems":1},"toppings":{"items":{"enum":["syrup","powdered-sugar","whipped-cream","nutella","peanut-butter","jelly"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"lobster":{"type":"integer","minimum":0,"maximum":999},"catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"brunch"},"groups":{"properties":{"french-toast":{"items":{"enum":["cinnamon-sugar-french-toast","fruity-french-toast"]},"maxItems":1},"pancakes":{"items":{"enum":["fluffy-pancakes","fruits-cream-pancakes","strawberry-pancakes","cheesecake-pancakes","banana-oat-pancakes"]},"maxItems":1},"waffles":{"items":{"enum":["bacon-waffles-combo","nutella-waffles","fruity-pebbles-waffles","oreo-cream-waffles"]},"maxItems":1},"eggs":{"items":{"enum":["scrambled-eggs-with-cheese","omelette-with-cheese"]},"maxItems":1},"bagels":{"items":{"enum":["smoked-salmon-bagel","avocado-toast-bagel"]},"maxItems":1},"bacon":{"items":{"enum":["pork-bacon","turkey-bacon","vegan-bacon"]},"maxItems":1},"potatoes":{"items":{"enum":["herb-roasted-potatoes","mashed-potatoes"]},"maxItems":1},"hot-item-meat":{"items":{"enum":["garlic-butter-steak-in-mushroom-sauce","teriyaki-chicken","crispy-fried-chicken"]},"maxItems":1},"hot-item-seafood":{"items":{"enum":["garlic-butter-shrimp","grilled-salmon","lobster-tail","catch-of-the-day"]},"maxItems":1},"drinks":{"items":{"enum":["orange-juice","apple-juice","peach-juice","mango-juice","pineapple-juice"]},"maxItems":1}},"additionalProperties":false},"extras":{"properties":{"extra-lobster":{"type":"integer","minimum":0,"maximum":999},"extra-catch-of-the-day":{"type":"integer","minimum":0,"maximum":999}},"additionalProperties":false}},"not":{"anyOf":[{"required":["board"]},{"required":["boardGuests"]}]}},{"properties":{"menu_id":{"const":"floating-board"},"groups":{"properties":{},"additionalProperties":false},"extras":{"properties":{"mimosas":{"type":"integer","minimum":0,"maximum":999},"photography":{"type":"integer","minimum":0,"maximum":1}},"additionalProperties":false},"board":{"enum":["couple","group4","group6","group8","group10","large"]}}}],"description":"Public planning only: no names, contact details, addresses, free-text health details, prices or catalog versions. Omit unknown optional schedule fields. Missing dish choices or board size produce an incomplete quote without an exact total. Never invent choices."}}}}
