# Restaurant KDS Foundation v48

## Core principle
`Send Kitchen` is a business action, not a printer action.

The server computes an order-item delta against the last dispatched state and creates KDS tickets. Printing may subscribe to the same business events later, but KDS truth does not depend on a printer being present.

## Included
- Branch-scoped KDS stations: kitchen, bar, dessert, expeditor, pickup.
- Variant-to-station routing.
- Immutable send sequence per order.
- Delta semantics: `add`, `change`, `cancel`, `resend`.
- Dispatch state per restaurant order item.
- KDS ticket lifecycle: queued -> preparing -> ready -> completed.
- Station target minutes for timers/late-ticket UI.
- Board query for active tickets.
- Branch 86 / unavailable variant registry.
- Restaurant order event audit for sends and KDS status transitions.

## Delta behavior
First send emits `add`.
No item change emits no new ticket.
Quantity change emits signed `change`.
Cancellation after send emits signed negative `cancel`.
Forced resend emits `resend` without changing business quantity.

## Deferred
- printer job generation/routing
- expeditor aggregation across stations
- course/fire timing
- sent-item cancellation stock/waste policy
- packaging
- delivery dispatch/COD
- KDS websocket push
