docs/wml-engine/ticket-plan.md
Ticket Plan (Spec-Referenced)
This is the actionable backlog for implementation without overengineering.
Traceability linkage:
- Engine requirements map to Waves IDs in
docs/wml-engine/requirements-matrix.md. - Cross-project contract/test alignment is tracked in:
docs/waves/CONTRACT_REQUIREMENTS_MAPPING.mddocs/waves/SPEC_TEST_COVERAGE.md
Cross-project maintenance alignment:
M1-02native/wasm parity-critical regression coverage is complete.M1-07parser robustness hardening is complete.M1-08boundary-oriented decomposition of high-churn files is complete.M1-03engine API generator design/bootstrap as a non-priority track.
Source board:
docs/waves/MAINTENANCE_WORK_ITEMS.md
Phase A: Lock MVP Runtime (P0)
A1. Parser baseline hardening
- Build:
- Enforce
wml -> card+invariant. - Preserve card order and ids.
- Support MVP nodes:
p,br,a[href]. - Ignore unsupported tags without panic.
- Sources:
WAP-191_104DTD deck/card andaelement sections. - Accept:
- Unit tests for malformed/unknown tags.
- Golden parse snapshots for two-card fixtures.
A2. Navigation + history baseline
- Build:
- Internal fragment nav (
#cardId). - External nav intent emission.
- History push/pop for card transitions.
- Sources:
WAP-191*go/prev semantics and history descriptions. - Accept:
- Key-sequence integration tests.
- Deterministic state snapshots.
A3. Render determinism
- Build:
- Deterministic text wrapping by viewport cols.
- Deterministic focus indexing per logical link.
- Stable draw command order.
- Sources:
WML card ordering guidance (
orderedas hint, not strict layout algorithm). - Accept:
- Snapshot tests at multiple viewport widths.
A4. Boundary metadata stability
- Build:
- Keep
loadDeckContext(wmlXml, baseUrl, contentType, rawBytesBase64?, referringUrl?)primary. - Preserve backwards-compatible
loadDeck(xml).
- Sources: WML/WBXML media-type and transport-normalization boundary.
- Accept:
- Contract tests in host sample.
Phase B: Spec Semantics Additions (P1)
B1. Card metadata semantics
- Build:
- Parse/store
newcontext,ordered,title, card intrinsic event attrs. - Parse/store
head/template/access/metaminimally.
- Sources:
WAP-191_104DTD and card/template/head/access definitions. - Accept:
- Metadata getter tests.
B2. Task model (do + %task)
- Build:
- Parse
doand nestedgo|prev|noop|refresh. - Softkey/task activation map.
- Task executor pipeline.
- Sources:
WAP-191_104sections 9.5, 9.6 and DTD%task. - Accept:
- One integration test per task type.
B3. Variable substitution
- Build:
- Variable store.
- Substitution in text +
%vdata+%HREF. - Undefined variable -> empty string.
- Correct substitution timing in action pipeline.
- Sources:
WAP-191_104variable semantics and substitution processing order. - Accept:
- Substitution fixture matrix, including nested navigation + setvar.
B4. Timer + intrinsic events
- Build:
- Parse timer element and attributes.
- Start/stop/expire behavior hooks.
ontimerdispatch via onevent/task path.
- Sources:
WAP-191_104section 11.7 + intrinsic event table. - Accept:
- Deterministic simulated-clock tests.
Phase C: Forms and Request Semantics (P2)
Active promotion note:
- The transport-side native submit baseline is now landed.
- The first interactive subset of this phase (
A5-04,A5-05,A5-06) is now landed ondocs/wml-engine/work-items.md. - Keep the remainder of Phase C deferred unless it directly supports the
current runtime-fidelity lane (
D0-01,W1-06) or preserves the completedW0-05baseline.
C1. Field model
- Build:
- Add input/select/option/fieldset representations.
- Focus/edit semantics in constrained viewport.
- Sources:
WAP-191*field and option/form sections. - Accept:
- Form navigation/edit snapshots.
C2. Request payload semantics
- Build:
- Implement postfield serialization order and encoding pipeline.
- Implement go method/enctype/accept-charset behavior.
- Sources:
WAP-191_104andWAP-191_105go/postfield clarifications. - Accept:
- Payload generation fixture tests (GET + POST + multipart metadata behavior).
Phase D: Deferred Advanced Features
- WMLScript (
WAP-193*,WAP-194*) - Styling (
WAP-239*) - Transform features (
WAP-244)
These remain intentionally deferred to avoid overengineering early phases.
Cross-Cutting Quality Tickets
Q1. Error taxonomy
- Add stable parse/runtime/nav error codes exposed to host.
Q2. Requirement traceability
- For each implemented requirement id from
requirements-matrix.md, add test id mapping.
Q3. Conformance fixtures
- Build fixture deck corpus from canonical reviewed specs and maintain expected outputs under version control.
Q4. Engine API generation pipeline (non-priority)
- Generate TypeScript API/types/facade scaffolding from engine-owned API metadata.
- Use generated outputs to reduce manual contract-sync churn across browser and host tooling.