WAP LabsProject atlas

docs/wml-engine/readme.md

WaveNav Engine Docs

Purpose: implementation-ready documentation for a maintainable WaveNav WASM WML engine based on WML 1.1 semantics.

Canonical Docs

Use these as the current source of truth:

  1. source-material-review.md
  2. requirements-matrix.md
  3. architecture.md
  4. ticket-plan.md
  5. test-strategy.md
  6. work-items.md
  7. wavescript-security.md
  8. ../waves/RUNTIME_MARKUP_SPEC_TRACEABILITY.md
  9. ../waves/CONTRACT_REQUIREMENTS_MAPPING.md
  10. ../waves/SPEC_TEST_COVERAGE.md

Non-authoritative historical docs are retained only for context:

  • implementation-tickets.md
  • ../wml-1.1-engine-support-plan.md

Read Order

  1. spec-derived-requirements.md (what must be true)
  2. source-material-review.md (what was extracted from the reviewed canonical local PDFs)
  3. requirements-matrix.md (normative requirement -> module -> tests)
  4. architecture.md (how to structure the engine)
  5. ticket-plan.md (step-by-step spec-referenced backlog)
  6. work-items.md (execution-ready tickets for current build cycle)
  7. test-strategy.md (how to verify behavior)
  8. wavescript-security.md (sandbox and safety controls)
  9. source-material-triage.md (full-corpus triage context)
  10. implementation-tickets.md (older backlog draft; superseded by ticket-plan.md)

Reference-Only Material (not implementation-ready)

  • HISTORICAL_QUIRKS.md / historical-quirks.json: source-cited catalogue of documented WAP browser divergences from the WML spec (Openwave/Nokia/Ericsson/Motorola era). Research reference for a possible future compatibility-profile feature – does not affect current runtime behavior, and must not be treated as authoritative until explicitly promoted per that doc’s own promotion rule.
  • COMPATIBILITY_PROFILE_DESIGN_NOTES.md: proposed architecture (profile struct shape, build order, test corpus) for the same possible future feature. Design reference only, not implemented.

Scope Philosophy

  • Start with a strict MVP that renders and navigates cards correctly.
  • Keep interfaces stable and internal modules replaceable.
  • Add advanced semantics in phases (do/go/prev/refresh, variables, forms, timers/events).