Course firing on the kitchen display API
- Tickets can now carry course numbers and hold times, and the display releases each course on the pass rather than all at once.
- Existing tickets without course data behave exactly as before, so no migration is required.
