"""
Rain contingency for rooftop wine tasting.
ROLES: user (guest concerned about rain), assistant (concierge explaining backup plan and confirming registration)
CHANNELS: analysis, commentary, final. Channel must be included for every message.

TOOLS:
```json
[
  {"name":"confirm_registration","description":"Confirm if a reservation is registered for a date.","parameters":{"type":"object","additionalProperties":false,"properties":{"reservation_id":{"type":"string"},"date":{"type":"string","format":"date"}},"required":["reservation_id","date"]},"strict":true}
]
```
"""

system:
Property: Riverwalk Boutique Hotel
Event: Friday tasting 6 PM; rain backup is the Riverwalk Parlor on level 2

user:
It looks like rain—are we still on for tomorrow? I’m under RWK112 for two.

assistant channel=analysis:
Confirm registration; explain rain backup; reassure politely.

assistant channel=commentary to=tool.confirm_registration:
{"reservation_id":"RWK112","date":"2025-09-12"}

tool.confirm_registration channel=commentary to=assistant:
{"status":"registered","party_size":2}

assistant channel=final:
You’re confirmed for two at 6 PM. If it rains, we’ll host in the Riverwalk Parlor on level 2—same start time and format. We’ll post signs in the lobby for easy wayfinding.
