/api/packing/ordersK3 — the night's orders to confirm
Pass two of the shift. Where /items is item-first, this is order-first: every order for the delivery day with its pack progress, its state, and who is holding it.
State is derived, never stored — not_started (nothing decided), in_progress, ready_to_confirm (every line decided), confirmed (already moved on to shipping). It uses the same classification the day board counts with, so K1's tallies and K3's rows can never disagree about the same night.
An expired lock reads as no lock, matching the day board — a stale holder shown here would stop a packer opening an order that is actually free.
A 400 is returned: Invalid input — the error string says what was wrong. A 401 is returned: Not authenticated. Sign in first (see the Auth tag). A 500 is returned: Unexpected server error.