{
  "tools": [
    {
      "name": "get_van_tour",
      "title": "Van tour facts",
      "description": "Owner-approved tour facts, price rules and booking policies. No live inventory check.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_van_stops",
      "title": "Van tour stops",
      "description": "All 25 selectable stops and separate attraction admission rules.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "quote_van_tour",
      "title": "Calculate a tour price",
      "description": "Calculate a whole-dollar tour total with the same calculator as checkout. Does not create or reserve a booking.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 40,
            "description": "Total passengers aged 13 or older. Maximum 10 per van; provide vans for multiple vans."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 36,
            "description": "Passengers aged 0\u201312; free on the tour but counted toward capacity."
          },
          "vans": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "description": "Optional per-van passenger allocation. Counts must add up to adults and children; each van requires 1\u201310 guests including at least one adult. Each van is priced and rounded down separately, then totals are added. All vans share date, start time and duration. Omit for one van.",
            "items": {
              "type": "object",
              "properties": {
                "adults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10
                },
                "children": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9
                }
              },
              "required": [
                "adults",
                "children"
              ],
              "additionalProperties": false
            }
          },
          "duration_hours": {
            "type": "integer",
            "minimum": 4,
            "maximum": 8
          },
          "stop_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "tres-trapi",
                "bushiribana",
                "natural-bridge",
                "ayo",
                "casibari",
                "california-lighthouse",
                "seroe-colorado",
                "mangel-halto",
                "arikok",
                "eagle-beach",
                "hooiberg",
                "malmok",
                "palm-beach",
                "donkey-sanctuary",
                "oranjestad",
                "arashi",
                "red-anchor",
                "san-nicolas",
                "rodgers",
                "boca-catalina",
                "baby-beach",
                "alto-vista",
                "philips-garden",
                "butterfly-farm",
                "ostrich-farm"
              ]
            },
            "maxItems": 25,
            "uniqueItems": true,
            "default": [],
            "description": "Optional wish list, not a guaranteed driving route. Empty means decide with the guide."
          },
          "tour_date": {
            "type": "string",
            "format": "date",
            "description": "Optional. Must be supplied together with pickup_time, at least 24 hours ahead in America/Aruba."
          },
          "pickup_time": {
            "type": "string",
            "pattern": "^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$",
            "description": "Aruba local time, HH:mm. Afternoon starts are supported; this does not check attraction opening hours."
          }
        },
        "required": [
          "adults",
          "children",
          "duration_hours"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "tour_date": [
            "pickup_time"
          ],
          "pickup_time": [
            "tour_date"
          ]
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "prepare_van_booking_link",
      "title": "Prepare a booking link",
      "description": "Return a prefilled booking-page link. No personal data, payment data, booking creation, inventory hold or email. The guest must review, consent and complete Stripe card saving on the website.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 40,
            "description": "Total passengers aged 13 or older. Maximum 10 per van; provide vans for multiple vans."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 36,
            "description": "Passengers aged 0\u201312; free on the tour but counted toward capacity."
          },
          "vans": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "description": "Optional per-van passenger allocation. Counts must add up to adults and children; each van requires 1\u201310 guests including at least one adult. Each van is priced and rounded down separately, then totals are added. All vans share date, start time and duration. Omit for one van.",
            "items": {
              "type": "object",
              "properties": {
                "adults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10
                },
                "children": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9
                }
              },
              "required": [
                "adults",
                "children"
              ],
              "additionalProperties": false
            }
          },
          "duration_hours": {
            "type": "integer",
            "minimum": 4,
            "maximum": 8
          },
          "stop_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "tres-trapi",
                "bushiribana",
                "natural-bridge",
                "ayo",
                "casibari",
                "california-lighthouse",
                "seroe-colorado",
                "mangel-halto",
                "arikok",
                "eagle-beach",
                "hooiberg",
                "malmok",
                "palm-beach",
                "donkey-sanctuary",
                "oranjestad",
                "arashi",
                "red-anchor",
                "san-nicolas",
                "rodgers",
                "boca-catalina",
                "baby-beach",
                "alto-vista",
                "philips-garden",
                "butterfly-farm",
                "ostrich-farm"
              ]
            },
            "maxItems": 25,
            "uniqueItems": true,
            "default": [],
            "description": "Optional wish list, not a guaranteed driving route. Empty means decide with the guide."
          },
          "tour_date": {
            "type": "string",
            "format": "date",
            "description": "Optional. Must be supplied together with pickup_time, at least 24 hours ahead in America/Aruba."
          },
          "pickup_time": {
            "type": "string",
            "pattern": "^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$",
            "description": "Aruba local time, HH:mm. Afternoon starts are supported; this does not check attraction opening hours."
          }
        },
        "required": [
          "adults",
          "children",
          "duration_hours"
        ],
        "additionalProperties": false,
        "dependentRequired": {
          "tour_date": [
            "pickup_time"
          ],
          "pickup_time": [
            "tour_date"
          ]
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "assess_van_tour_request",
      "title": "Check a tour against your needs",
      "description": "Assess a supplied plan against explicit customer requirements and return an exact group quote, evidence links and unmet or unresolved needs. Read-only: no booking or contact. This is product-fit checking, not live inventory, exact route planning, opening-hour or sea-condition verification. Present all qualifications; never report product_fit as a confirmed reservation. Unknown needs go in other and require team confirmation. No personal or card data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "object",
            "properties": {
              "adults": {
                "type": "integer",
                "minimum": 1,
                "maximum": 40,
                "description": "Total passengers aged 13 or older. Maximum 10 per van; provide vans for multiple vans."
              },
              "children": {
                "type": "integer",
                "minimum": 0,
                "maximum": 36,
                "description": "Passengers aged 0\u201312; free on the tour but counted toward capacity."
              },
              "vans": {
                "type": "array",
                "minItems": 1,
                "maxItems": 4,
                "description": "Optional per-van passenger allocation. Counts must add up to adults and children; each van requires 1\u201310 guests including at least one adult. Each van is priced and rounded down separately, then totals are added. All vans share date, start time and duration. Omit for one van.",
                "items": {
                  "type": "object",
                  "properties": {
                    "adults": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 10
                    },
                    "children": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9
                    }
                  },
                  "required": [
                    "adults",
                    "children"
                  ],
                  "additionalProperties": false
                }
              },
              "duration_hours": {
                "type": "integer",
                "minimum": 4,
                "maximum": 8
              },
              "stop_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "tres-trapi",
                    "bushiribana",
                    "natural-bridge",
                    "ayo",
                    "casibari",
                    "california-lighthouse",
                    "seroe-colorado",
                    "mangel-halto",
                    "arikok",
                    "eagle-beach",
                    "hooiberg",
                    "malmok",
                    "palm-beach",
                    "donkey-sanctuary",
                    "oranjestad",
                    "arashi",
                    "red-anchor",
                    "san-nicolas",
                    "rodgers",
                    "boca-catalina",
                    "baby-beach",
                    "alto-vista",
                    "philips-garden",
                    "butterfly-farm",
                    "ostrich-farm"
                  ]
                },
                "maxItems": 25,
                "uniqueItems": true,
                "default": [],
                "description": "Optional wish list, not a guaranteed driving route. Empty means decide with the guide."
              },
              "tour_date": {
                "type": "string",
                "format": "date",
                "description": "Optional. Must be supplied together with pickup_time, at least 24 hours ahead in America/Aruba."
              },
              "pickup_time": {
                "type": "string",
                "pattern": "^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$",
                "description": "Aruba local time, HH:mm. Afternoon starts are supported; this does not check attraction opening hours."
              }
            },
            "required": [
              "adults",
              "children",
              "duration_hours"
            ],
            "additionalProperties": false,
            "dependentRequired": {
              "tour_date": [
                "pickup_time"
              ],
              "pickup_time": [
                "tour_date"
              ]
            }
          },
          "requirements": {
            "type": "object",
            "properties": {
              "private": {
                "type": "boolean"
              },
              "air_conditioned": {
                "type": "boolean"
              },
              "hotel_or_villa_pickup": {
                "type": "boolean"
              },
              "swimming": {
                "type": "boolean"
              },
              "remain_in_wheelchair": {
                "type": "boolean"
              },
              "child_seats": {
                "type": "boolean"
              },
              "budget_includes_admissions": {
                "type": "boolean"
              },
              "start_period": {
                "enum": [
                  "morning",
                  "afternoon",
                  "evening"
                ]
              },
              "walking": {
                "enum": [
                  "unrestricted",
                  "limited",
                  "no_stairs"
                ]
              },
              "required_stop_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "tres-trapi",
                    "bushiribana",
                    "natural-bridge",
                    "ayo",
                    "casibari",
                    "california-lighthouse",
                    "seroe-colorado",
                    "mangel-halto",
                    "arikok",
                    "eagle-beach",
                    "hooiberg",
                    "malmok",
                    "palm-beach",
                    "donkey-sanctuary",
                    "oranjestad",
                    "arashi",
                    "red-anchor",
                    "san-nicolas",
                    "rodgers",
                    "boca-catalina",
                    "baby-beach",
                    "alto-vista",
                    "philips-garden",
                    "butterfly-farm",
                    "ostrich-farm"
                  ]
                },
                "maxItems": 25,
                "uniqueItems": true,
                "default": [],
                "description": "Optional wish list, not a guaranteed driving route. Empty means decide with the guide."
              },
              "budget_total_usd": {
                "type": "integer",
                "minimum": 0,
                "description": "Whole USD for all vans together, not per person."
              },
              "other": {
                "type": "array",
                "maxItems": 10,
                "items": {
                  "type": "string",
                  "minLength": 2,
                  "maxLength": 300
                },
                "description": "Unmodeled needs. Always returned for team confirmation; never treated as automatically understood or fulfilled."
              }
            },
            "required": [],
            "additionalProperties": false
          }
        },
        "required": [
          "plan",
          "requirements"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "send_tour_question",
      "title": "Send a question to our Aruba team",
      "description": "Send a tour question to the team with the customer\u2019s explicit permission to share the question and reply email. This sends an email and is NOT read-only. No booking, payment, amendment or cancellation is performed. Returns received and a reference only after mail transport accepts it, not proof of inbox delivery. Reuse request_id and identical content on retries for seven days; never restart an uncertain send. Shared limits, spam screening and duplicate protection apply; suspicious requests require staff verification by phone. No API key needed. Do not send card details or attachments.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$",
            "description": "Fresh random UUID v4 for each new question. Reuse unchanged on retries for seven days; never retry an uncertain send with a new ID."
          },
          "name": {
            "type": "string",
            "maxLength": 80,
            "default": ""
          },
          "reply_email": {
            "type": "string",
            "format": "email",
            "maxLength": 254,
            "description": "The customer\u2019s email, shared with their permission, for the team to reply."
          },
          "question": {
            "type": "string",
            "minLength": 5,
            "maxLength": 3000,
            "description": "Plain-text tour question only. No card/account numbers, secrets, HTML, attachments or promotional links."
          },
          "customer_authorized": {
            "type": "boolean",
            "const": true,
            "description": "True only after the customer has authorized sending this question and sharing their reply email. This is consent to an inquiry, never a booking or charge."
          }
        },
        "required": [
          "request_id",
          "reply_email",
          "question",
          "customer_authorized"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "create_van_booking_draft",
      "title": "Prepare a customer-approved tour",
      "description": "Prepare an encrypted, expiring tour draft with optional guest contact/pickup details, only with the customer\u2019s permission. This stores a draft, not a reservation. Return the private approval link to the guest; they review/edit, explicitly agree to share the outcome, accept terms and save a card directly with Stripe. Keep the separate operation_token private and poll get_van_booking_outcome. Reuse request_key and identical content after a lost response; never send card data.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "request_key": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Generate 32 cryptographically random bytes as 64 lowercase hex characters. Keep this private request_key and all input unchanged on retries. Never derive it from customer data."
          },
          "plan": {
            "type": "object",
            "properties": {
              "adults": {
                "type": "integer",
                "minimum": 1,
                "maximum": 40,
                "description": "Total passengers aged 13 or older. Maximum 10 per van; provide vans for multiple vans."
              },
              "children": {
                "type": "integer",
                "minimum": 0,
                "maximum": 36,
                "description": "Passengers aged 0\u201312; free on the tour but counted toward capacity."
              },
              "vans": {
                "type": "array",
                "minItems": 1,
                "maxItems": 4,
                "description": "Optional per-van passenger allocation. Counts must add up to adults and children; each van requires 1\u201310 guests including at least one adult. Each van is priced and rounded down separately, then totals are added. All vans share date, start time and duration. Omit for one van.",
                "items": {
                  "type": "object",
                  "properties": {
                    "adults": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 10
                    },
                    "children": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9
                    }
                  },
                  "required": [
                    "adults",
                    "children"
                  ],
                  "additionalProperties": false
                }
              },
              "duration_hours": {
                "type": "integer",
                "minimum": 4,
                "maximum": 8
              },
              "stop_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "tres-trapi",
                    "bushiribana",
                    "natural-bridge",
                    "ayo",
                    "casibari",
                    "california-lighthouse",
                    "seroe-colorado",
                    "mangel-halto",
                    "arikok",
                    "eagle-beach",
                    "hooiberg",
                    "malmok",
                    "palm-beach",
                    "donkey-sanctuary",
                    "oranjestad",
                    "arashi",
                    "red-anchor",
                    "san-nicolas",
                    "rodgers",
                    "boca-catalina",
                    "baby-beach",
                    "alto-vista",
                    "philips-garden",
                    "butterfly-farm",
                    "ostrich-farm"
                  ]
                },
                "maxItems": 25,
                "uniqueItems": true,
                "default": [],
                "description": "Optional wish list, not a guaranteed driving route. Empty means decide with the guide."
              },
              "tour_date": {
                "type": "string",
                "format": "date",
                "description": "Optional. Must be supplied together with pickup_time, at least 24 hours ahead in America/Aruba."
              },
              "pickup_time": {
                "type": "string",
                "pattern": "^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$",
                "description": "Aruba local time, HH:mm. Afternoon starts are supported; this does not check attraction opening hours."
              }
            },
            "required": [
              "adults",
              "children",
              "duration_hours"
            ],
            "additionalProperties": false,
            "dependentRequired": {
              "tour_date": [
                "pickup_time"
              ],
              "pickup_time": [
                "tour_date"
              ]
            }
          },
          "guest": {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "maxLength": 80
              },
              "last_name": {
                "type": "string",
                "maxLength": 80
              },
              "email": {
                "type": "string",
                "maxLength": 254
              },
              "phone": {
                "type": "string",
                "maxLength": 80
              },
              "pickup_address": {
                "type": "string",
                "maxLength": 500
              },
              "dropoff_address": {
                "type": "string",
                "maxLength": 500
              },
              "special_requests": {
                "type": "string",
                "maxLength": 2000
              }
            },
            "required": [],
            "additionalProperties": false
          },
          "customer_authorized": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "request_key",
          "plan",
          "customer_authorized"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_van_booking_outcome",
      "title": "Check the booking result",
      "description": "Read the creation outcome of your prepared booking, or authorization status of an access request. Confirmed requires a verified AYW receipt; processing or action_required are not confirmation. This reports the original booking outcome, not later amendments; use get_van_reservation for the current reservation after guest verification. Poll no faster than every 15 seconds. Do not create another booking after an uncertain result.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$"
          },
          "operation_token": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Private scoped capability. Do not publish, log, put in query parameters or share with anyone other than the authorized caller."
          }
        },
        "required": [
          "operation_id",
          "operation_token"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "request_van_reservation_access",
      "title": "Ask the guest for reservation access",
      "description": "Create a private guest authorization link for one reservation. This sends no email and reveals no reservation details. The guest enters their recorded email on the website, receives and enters a code there, and explicitly grants one hour of read/request access. NEVER ask the guest to share their code with you. Keep the operation token private; poll get_van_booking_outcome until authorized. A booking reference alone grants no access.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "request_key": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Generate 32 cryptographically random bytes as 64 lowercase hex characters. Keep this private request_key and all input unchanged on retries. Never derive it from customer data."
          },
          "booking_reference": {
            "type": "string",
            "minLength": 5,
            "maxLength": 40
          },
          "assistant_name": {
            "type": "string",
            "maxLength": 80
          }
        },
        "required": [
          "request_key",
          "booking_reference"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_van_reservation",
      "title": "Read an authorized reservation",
      "description": "Read current tour details and service-request statuses for the single reservation the guest authorized on the website. Requires unexpired one-hour authorization. No card details, contact details or internal notes are returned. Pending requests are not completed amendments or cancellations.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$"
          },
          "operation_token": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Private scoped capability. Do not publish, log, put in query parameters or share with anyone other than the authorized caller."
          }
        },
        "required": [
          "operation_id",
          "operation_token"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "preview_van_reservation_request",
      "title": "Review a change or cancellation request",
      "description": "Preview a pickup, date/time or cancellation request for an authorized reservation. Show the guest the requested action, 24-hour cutoff, full tour total and possible cancellation charge, then obtain explicit approval. Returns a signed preview valid for 15 minutes. Does not submit or perform the request, charge or refund. Availability and policy exceptions require team review.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$"
          },
          "operation_token": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Private scoped capability. Do not publish, log, put in query parameters or share with anyone other than the authorized caller."
          },
          "request_id": {
            "type": "string",
            "format": "uuid",
            "description": "New random UUID v4 for this change request; preserve on retries."
          },
          "change": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "pickup"
                  },
                  "pickup_address": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "kind",
                  "pickup_address"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "schedule"
                  },
                  "tour_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "pickup_time": {
                    "type": "string",
                    "pattern": "^(?:[01][0-9]|2[0-3]):(?:00|15|30|45)$",
                    "description": "Aruba local time, HH:mm. Afternoon starts are supported; this does not check attraction opening hours."
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "kind",
                  "tour_date",
                  "pickup_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
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "submit_van_reservation_request",
      "title": "Submit an approved reservation request",
      "description": "Submit the exact preview ONLY after the guest approves its action and consequences. This creates a pending request in the team\u2019s booking system, not an immediate amendment/cancellation, charge or refund. Retry the same proposal after uncertain responses; do not generate a new request ID. If the reservation, cutoff or preview expired, preview again and obtain renewed guest approval. Read get_van_reservation for the team\u2019s eventual completed/rejected result.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$"
          },
          "operation_token": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Private scoped capability. Do not publish, log, put in query parameters or share with anyone other than the authorized caller."
          },
          "proposal_token": {
            "type": "string",
            "maxLength": 12000
          },
          "customer_authorized": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "operation_id",
          "operation_token",
          "proposal_token",
          "customer_authorized"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ]
}
