# MVP-TASK-010 — Capture operational metadata

**Status:** Done

**Parent:** MVP-ORD-002-S01–S06

## Objective and required behavior

In shared review/finalization UI, capture optional queue number/note and required
eat-here/take-away. Preserve leading zeroes and accept duplicate numbers using internal order
identity.

## Scope, areas, and non-goals

Expected frontend form/domain/application/API/persistence preparation and tests. No automatic
number, uniqueness check, generalized channels, line-item notes, or post-finalization edits (task
024).

## Evidence and acceptance

Use all six scenario IDs across E2E and integration. Accept when absence, formatting, duplicates,
note, and both fulfillment choices survive the boundary, traceability is current, and inherited DoD
passes. Handoff records bounded input rules and minimal representation.

## Delivered evidence

`frontend/src/pages/KdsPage.test.tsx` and `tests/e2e/kds.spec.ts` carry every exact scenario ID.
They prove absent optional values, the required unselected initial fulfillment state, queue number
and note capture, preservation of `01`, both fulfillment choices, navigation survival, bounded
inputs, reset, and reuse of `01` by a fresh draft. The local representation is optional display
strings plus nullable `eatHere`/`takeAway`; queue number is never identity. Durable finalization and
the real PostgreSQL boundary remain MVP-TASK-012, so this task deliberately creates no partial order
row or metadata-only API.
