# Requirement change

Customer support keep having to tell people "sorry, once it's booked it's booked" and it is costing
us goodwill for no reason — most cancellations happen within a minute of the customer's thumb
slipping. Let's allow cancelling a confirmed booking, with a window.

**Cancel within two minutes of confirming, get every penny back. Cancel any later than that, and
you get half back.** The two minutes is measured from the moment the booking was confirmed, not
from when the seats were first held — somebody who held for four minutes and thirty seconds before
finally paying still gets the full two minutes from the confirmation itself. Right at the two-minute
mark still counts as inside the window; a moment after it does not.

The seats a cancelled booking held go straight back to available — someone else should be able to
book them immediately, the same as any other seat that becomes free.

A booking can only be cancelled once. Cancelling a booking that has already been cancelled, or
asking to cancel a holdId that was never confirmed in the first place — it's still just held, or it
lapsed, or it was released, or it was never issued at all — is refused, not silently accepted.

Nothing about `hold`, `confirm` or `releaseHold` changes. This is a new, separate operation for a
booking that already exists.
