docs/waves/wae_spec_traceability.md
Waves WAE Spec Traceability
Version: v0.2 Status: WAP 1.2.1 authority normalized; WAP-236 retained as delta evidence
Purpose
Capture WAE normative requirements relevant to Waves and map them to implementation-facing acceptance criteria.
Source Authority Policy
- See
docs/waves/SOURCE_AUTHORITY_POLICY.mdfor normative vs supplemental source precedence and citation rules.
Source set reviewed
WAP-190-WAESpec-20000329-a.pdfWAP-190_101-WAESpec-20001213-a.pdfWAP-190_102-WAESpec-20001213-a.pdfWAP-190_103-WAESpec-20001213-a.pdfWAP-190_104-WAE-Spec-20010731-a.pdfWAP-215-ClassConform-20001213-a.pdfWAP-221-CREQ-20010425-a.pdfspec-processing/source-material/WAP-236-WAESpec-20020207-a.pdfspec-processing/source-material/WAP-237-WAEMT-20010515-a.pdf
Normative precedence
- The effective WAP-190 chain, ending in the resulting SCR table supplied by
WAP-190_104. - WAP-221 for SCR dependency syntax and feature-group meaning.
- WAP-215
CCR-CLASSC-C-001for the selectedWAESpec:MCFprofile. - WAP-236 and WAP-237 as successor delta evidence only.
The exact 86-row target ledger, 11-row Class C selection, source hashes, implementation audit, and successor classifications are in:
docs/waves/WAP_1_2_1_WAE_SCR_LEDGER.mdspec-processing/source-manifests/wap-1.2.1-wae-scr.json
Target-era Class C WAE baseline
WAESpec:MCF selects exactly:
- Basic HTTP authentication and the
http:URL scheme; - charset, language, and media-type capability signaling;
- WML, WMLScript, and the WML user agent;
application/vnd.wap.wbxml,application/vnd.wap.wmlc, andapplication/vnd.wap.wmlscriptc.
Five rows currently have implemented evidence, three are partial, and three are missing. Optional graphics/WBMP, vCard/vCalendar, Push, WTA, multipart, Channels, and Service Indication rows are not silently included in the first Class C claim.
WAP-236 successor supplement
The requirement groups below predate this target normalization and are still useful for implementation planning. They are not, by themselves, WAP 1.2.1 requirements. Each must be confirmed against a target-era family, classified as a compatible clarification, or isolated behind a successor/extension profile.
Legend:
M= mandatoryO= optional
RQ-WAE-001 Media type determination
- Requirement:
- User Agent must use MIME media type as one component in content type determination.
- Spec:
WAP-2366.1.1- SCR:
WAESpec-MT-C-001 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Content routing path uses MIME type in final type decision logic.
RQ-WAE-002 Markup capability baseline and context continuity
- Requirement:
- User Agent must support either:
- XHTML MP text + WML1 text and/or binary, or
- WML2 text.
- WML context (history + vars) must persist across XHTMLMP/WML navigation as single UA semantics.
- User Agent must support either:
- Spec:
WAP-2366.2.4- SCRs:
WAESpec-ML-C-001 (M),WAESpec-ML-C-002 (M),WAESpec-ML-C-003 (M),WAESpec-ML-C-004 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Cross-language navigation preserves history and variable context.
- Capability profile is explicit in host/runtime conformance mode docs.
RQ-WAE-003 WMLScript support in UA
- Requirement:
- UA must support WMLScript + standard libraries in text and/or bytecode form.
- Spec:
WAP-2366.4.2- SCRs:
WAESpec-WMLS-C-001 (M),WAESpec-WMLS-C-002 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Runtime accepts configured script form(s) and executes stdlib surface.
- Script support mode is advertised in compatibility matrix.
RQ-WAE-004 WMLScript proxy compile behavior
- Requirement:
- Proxy must transform WMLScript to bytecode when UA prefers binary.
- On compile error, proxy should report HTTP 502.
- Spec:
WAP-2366.4.2- SCRs:
WAESpec-WMLS-S-001 (M),WAESpec-WMLS-S-002 (O)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Transport layer exposes compile path or equivalent behavior contract.
- Compile errors map to deterministic error response (502 where HTTP semantics apply).
RQ-WAE-005 WBXML role and boundary
- Requirement:
- WBXML support requirements come through format-specific specs; no standalone WBXML conformance in WAE.
- Spec:
WAP-2366.5
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- WBXML decode/encode stays in transport boundary; engine consumes decoded runtime inputs.
RQ-WAE-006 Graphical image/WBMP requirement gating
- Requirement:
- UA may support graphical images.
- If it supports graphical images, WBMP support is required.
- Spec:
WAP-2366.6.2- SCRs:
WAESpec-IMG-C-001 (O),WAESpec-IMG-C-002 (O)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- If image support flag is enabled, WBMP decode/render path exists and is tested.
- If disabled, behavior is documented as out-of-scope for current milestone.
RQ-WAE-007 Hypermedia transfer service support
- Requirement:
- UA and proxy must support Hypermedia Transfer Service.
- UA/proxy must support WSP or Wireless Profiled HTTP.
- Spec:
WAP-2367.1.1.2- SCRs:
WAESpec-HTS-C-001 (M),WAESpec-HTS-S-001 (M),WAESpec-HTS-C-002 (O),WAESpec-HTS-C-003 (O),WAESpec-HTS-S-002 (O),WAESpec-HTS-S-003 (O)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Waves transport profile declares active stack(s) (currently Rust transport-backed).
- Unsupported stack path returns explicit capability error.
RQ-WAE-008 Cache model support
- Requirement:
- UA must support the WAP-120 caching model, including the permitted zero-byte-cache posture, history revalidation branches, intra-resource navigation, and cache-content protection.
- Spec:
- strict target:
WAP-1204.1, 4.1.1, 4.1.2, 6, Appendix A - selected SCRs:
UACache-C-001..004,UACache-C-006(M) - machine ledger:
spec-processing/source-manifests/wap-1.2.1-caching-scr.json - successor evidence only:
WAP-2367.1.2.2 /WAESpec-HTS-C-004
- strict target:
- AC:
- Evidence: [ ] Direct WAP-120 fixtures remain open in
WAE-603; validate source/status/work mapping withnode scripts/check-wap-caching-conformance-ledger.mjs. - Zero-byte versus HTTP-cache capability is explicit and host caches cannot silently alter strict behavior.
- Stale history replay covers both
must-revalidatebranches with the exact original request identity. - WML intra-deck and WMLScript intra-compilation-unit transitions do not revalidate.
- Cached/retained sensitive data has an explicit protection and lifetime policy.
- Evidence: [ ] Direct WAP-120 fixtures remain open in
RQ-WAE-009 WSP client-header caching in proxy
- Requirement:
- Proxy must implement cached request-header behavior for WSP connect/resume primitives.
- Spec:
WAP-2367.1.4- SCRs:
WAESpec-HTS-S-004 (O),WAESpec-HTS-S-005 (O)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Sidecar/proxy contract includes connect/resume header cache semantics.
- Accept/Accept-* override behavior matches section 7.1.4 examples.
RQ-WAE-010 URI handling baseline
- Requirement:
- UA/proxy must handle URIs at least 1024 octets.
- UA must retrieve
http:resources via WSP and/or W-HTTP.
- Spec:
WAP-2367.2, 7.2.1- SCRs:
WAESpec-URI-C-001 (M),WAESpec-URI-S-001 (M),WAESpec-URI-C-002 (M),WAESpec-URI-S-002 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Long-URI parsing/forwarding tests pass at 1024-octet boundary.
- HTTP scheme routing aligns with supported transport profiles.
- Progress note:
transport-rustnow enforces deterministic reject behavior beyond 1024 octets and includes fixture coverage (uri_too_long_1025) plus boundary unit tests.
RQ-WAE-011 HTTPS secure-session/error semantics
- Requirement:
- UA/proxy must support HTTPS URI scheme and profile-specific secure-session behavior.
- On secure-session establishment failure: UA reports error; proxy reports HTTP 502.
- Spec:
WAP-2367.2.2- SCRs:
WAESpec-URI-C-003 (M),WAESpec-URI-S-003 (M),WAESpec-URI-C-004 (O),WAESpec-URI-S-004 (O),WAESpec-URI-C-005 (O),WAESpec-URI-S-005 (O),WAESpec-URI-C-006 (M),WAESpec-URI-S-006 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Secure-session failure path has deterministic user-visible error and proxy error mapping.
- Profile-specific behavior is feature-gated/documented where not yet implemented.
RQ-WAE-012 Internationalization baseline
- Requirement:
- UA/proxy must support UTF-8 and UTF-16.
- XML character encoding must be treated per RFC3023; unknown chars must produce user-visible error.
- Proxy may transform unsupported encodings.
- Spec:
WAP-2367.4.1- SCRs:
WAESpec-I18N-C-001 (M),WAESpec-I18N-C-002 (M),WAESpec-I18N-C-003 (M),WAESpec-I18N-S-001 (O),WAESpec-I18N-S-002 (M),WAESpec-I18N-S-003 (M),WAESpec-I18N-S-004 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- UTF-8/UTF-16 deck/script decoding verified.
- Encoding error paths return deterministic errors.
- Progress note:
transport-rusttextual WML decode path now handles UTF-16 BOM decode and maps malformed UTF-16 payloads to deterministicPROTOCOL_ERROR, with mapped fixtures covering UTF-16 success/error boundaries.
RQ-WAE-013 User-agent capability advertising
- Requirement:
- UA advertising characteristics must at least use Accept, Accept-Charset, Accept-Encoding, Accept-Language.
- Proxy must interpret those headers per HTTP semantics.
- Spec:
WAP-2367.5.1- SCRs:
WAESpec-UAC-C-001 (O),WAESpec-UAC-C-002 (O),WAESpec-UAC-C-003 (O),WAESpec-UAC-C-004 (O),WAESpec-UAC-S-001 (M),WAESpec-UAC-S-002 (M),WAESpec-UAC-S-003 (M),WAESpec-UAC-S-004 (M),WAESpec-UAC-S-005 (M),WAESpec-UAC-S-006 (O),WAESpec-UAC-S-007 (O),WAESpec-UAC-S-008 (O)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Sidecar/proxy negotiation path uses Accept headers consistently.
- Media-type transformation obeys declared preference/quality behavior.
RQ-WAE-014 Basic authentication requirement
- Requirement:
- UA must implement HTTP/1.1 Basic authentication.
- Spec:
WAP-2367.10.1- SCR:
WAESpec-SEC-C-001 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Authentication challenge flow is represented in host/transport behavior contract.
RQ-WAE-015 WMLScript crypto compile support in proxy
- Requirement:
- Proxy supporting WMLScript compilation must compile units referring to Crypto library.
- Spec:
WAP-2367.10.3.2- SCR:
WAESpec-SEC-S-001 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Sidecar compile behavior documents/handles crypto-library references.
RQ-WAE-016 Navigation history model
- Requirement:
- UA must implement history stack model with at least push/pop operations.
- Entries should include absolute URL and method.
- Spec:
WAP-2367.11.1- SCR:
WAESpec-UAB-C-001 (M)
- AC:
- Evidence: [x] Engine evidence in
engine-wasm/engine/src/engine_tests/actions_timers.rs(navigate_back_restores_previous_card,navigate_back_returns_false_when_history_empty) andengine-wasm/engine/src/engine_tests/traces_public_api.rs(m1_02_handle_key_render_and_navigate_back_public_api_flow); browser request-shaped host-history evidence inbrowser/frontend/src/session-history.test.ts,browser/frontend/src/app/navigation-state.load.test.ts, andbrowser/frontend/src/app/navigation-state.history.test.ts. Commands:cd engine-wasm/engine && cargo test navigate_back_ && cargo test m1_02_handle_key_render_and_navigate_back_public_api_flowandpnpm --dir browser/frontend test -- --runInBand session-history.test.ts navigation-state.load.test.ts navigation-state.history.test.ts - Forward navigation performs push, backward performs pop.
- History entry stores request identity fields required for deterministic back behavior.
- Evidence: [x] Engine evidence in
RQ-WAE-017 BACK key behavior
- Requirement:
- UA must provide end-user BACK access at all times.
- BACK triggers pop.
- In WML1 mode, BACK executes
prev;do type="prev"override applies with first-in-document-order precedence.
- Spec:
WAP-2367.11.2- SCRs:
WAESpec-UAB-C-002 (M),WAESpec-UAB-C-003 (M),WAESpec-UAB-C-004 (O),WAESpec-UAB-C-005 (O)
- AC:
- Evidence: [x] Engine back-pop semantics are covered in
engine-wasm/engine/src/engine_tests/actions_timers.rsandengine-wasm/engine/src/engine_tests/traces_public_api.rs; browser fallback and deterministic restore behavior are covered inbrowser/frontend/src/app/navigation-state.history.test.tsandbrowser/frontend/src/app/navigation-state.load.test.ts. - UI always exposes BACK action path.
- BACK-to-pop behavior verified in runtime integration tests.
- WML1-specific prev/override semantics covered in fixture tests.
- Evidence: [x] Engine back-pop semantics are covered in
RQ-WAE-018 WBMP baseline format support
- Requirement:
- Any WBMP-supporting system must support WBMP type 0.
- UA advertising WBMP support must report supported WBMP types via Accept header.
- WBMP multi-byte integers must use smallest encoding.
- Type 0 extension headers must not be present.
- Spec:
WAP-2374.1, 4.3.1, 4.5.1, Appendix A- SCRs:
WAEMT-WBMP-C-001 (M),WAEMT-WBMP-C-002 (M)
- AC:
- Evidence: [ ] Link concrete tests/fixtures, file paths, and commands proving this requirement.
- Type 0 decode/validation fixtures pass.
- Invalid multi-byte-integer encodings are rejected.
- Accept header emission includes
image/vnd.wap.wbmp; level=0when WBMP is advertised.
Waves implementation mapping
engine-wasm/:RQ-WAE-001,RQ-WAE-002,RQ-WAE-003,RQ-WAE-016,RQ-WAE-017
transport-rust/(current proxy/transport role):RQ-WAE-004,RQ-WAE-007..RQ-WAE-015,RQ-WAE-018(as needed for image transformations/media handling)
browser/host:- UI-level behavior for
BACKaccess and error surfacing (RQ-WAE-011,RQ-WAE-017)
- UI-level behavior for
Notes
- The target-era extraction is complete at SCR-feature level; nested normative clauses remain open.
- The WAP-236 supplement is scoped to requirements that directly affect Waves runtime/host/transport behavior and cannot replace WAP-190 authority.
- Deferred optional areas (Push/vCard/vCalendar/multipart variants beyond immediate roadmap) remain tracked but not yet scheduled for implementation.