complete

abstract fun complete(id: ReservationId, actualCost: Long)

Complete reservation id, charging actualCost (0 ≤ actualCost ≤ the reserved maximum) and releasing the earmark (design §4.4). Idempotent: a later call for the same id is a no-op, and an unknown id is silently ignored.