{
  "schema_version": 1,
  "site": "https://caboincredible.com",
  "purpose": "Read-only description of the existing airport-transfer browser workflow. This is not a separate booking API.",
  "scope": "Airport-transfer booking form, saved-details review and payment-preference pages; tours and private quotes have separate flows.",
  "page_state_selector": "#ci-booking-state",
  "action_attribute": "data-booking-action",
  "workflow": [
    {"step": "quote", "meaning": "Route, travel dates and vehicle determine the displayed quote. A displayed price does not by itself prove live fleet availability.", "record_saved": false},
    {"step": "save_request", "selector": "#submitBtn", "effect": "Submits the form and saves a pending booking. The successful server response supplies the booking reference and opens the authorized review page. Clicking alone is not proof of success."},
    {"step": "review", "meaning": "The request is already saved. Trip details and extras can be reviewed. Existing save indicators report whether edits have been saved."},
    {"step": "confirm_details_and_extras", "selector": "#keepBtnSummary, #keepBtn", "effect": "Acknowledges the saved trip details and extras, sets booking status to confirmed, and opens payment options. It does not collect money or choose a payment method."},
    {"step": "payment_preferences", "meaning": "Payment selection may be completed now or later. Leaving without choosing a payment method does not cancel the saved confirmation."},
    {"step": "select_cash", "selector": "#cashBtn", "effect": "Records cash as the method. Booking remains confirmed and payment remains pending until money is collected."},
    {"step": "online_checkout", "selector": "#paypal-button-container", "effect": "Opens the provider checkout. Payment received is established by a successful provider payment and the server payment status, not by opening checkout."}
  ],
  "interpretation": {
    "confirmed": "The customer has confirmed their saved trip details and extras; the payment method can still be unselected and payment can still be pending.",
    "paid": "Payment has been recorded as received.",
    "hidden_templates": "Hidden success messages, inactive panels and offer placeholders are not evidence of current status or a selected quote.",
    "private_state": "Saved-reservation metadata is supplied only inside an existing authorized reservation page. Access tokens and customer contact fields are not repeated in the metadata.",
    "freshness": "Private-page state reflects the server render. Saved-edit indicators and the refreshed authorized page show subsequent changes. The live form itinerary is unsent input until submission succeeds."
  }
}
