71aaad03b9
A quick in-and-out the tariff prices at 0 (stay <= gracePeriodEntryMin) now exits at the gate instead of being refused as "not paid". exit-flow resolves the active site tariff (same logic as the pay station) and, if computeFee for entry->now is 0, mints a signed $0 payment event (reason: free entry-grace) then signs the vehicle_exit and opens. The $0 payment keeps the append-only ledger invariant that an exit is covered by a payment, so a grace exit stays attributable in the audit trail. A real payment still takes precedence (the walk-back grace path is untouched). Sign+open extracted to #signExitAndOpen, shared by both paths.