docs/waves/wap_1_2_1_wbxml_scr_ledger.md
WAP 1.2.1 WBXML SCR Ledger
Version: v0.4 Status: effective SCR extracted; Class C applied; direct decoder evidence partially closed
Purpose
Define the exact WBXML 1.3 feature-level obligations for the selected WAP 1.2.1 Class C data client and distinguish a WBXML-capable browser from a host that merely invokes an unverified decoder executable.
The machine-readable authority is:
spec-processing/source-manifests/wap-1.2.1-wbxml-scr.jsonspec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json
Validate it with:
node scripts/check-wap-wbxml-conformance-ledger.mjs
node scripts/check-wap-selected-normative-clauses.mjs
node scripts/check-wap-conformance-ledger.mjs
Effective authority
The normative target is:
WAP-192-WBXML-20010725-a, WBXML 1.3WAP-192_105-WBXML-20011015-a, applied afterward
The approved SIN says the July 2001 SCR was not in the appropriate format and
that part of WAP-192.101 had not been rolled into the updated specification.
Its corrected section 9 table supplies the effective actor-specific
WBXML-S-* and WBXML-C-* rows. Tracked-change inspection also resolves the
effective wording for processor instructions and removed XML metadata.
The profile selection is:
- WAP-215 target:
CCR-CLASSC-C-001 - selected feature group:
WBXML:MCF - WAP-221 meaning: all mandatory client features in the specification SCR
Effective totals
| Scope | Count |
|---|---|
| Active WBXML SCR rows | 15 |
| Mandatory rows, all actors | 11 |
| Optional rows, all actors | 4 |
| Client/decoder rows | 3 |
| Server/document/encoder rows | 12 |
| Class C-required client rows | 3 |
| Rows outside the selected client profile | 12 |
There are no optional client rows in the corrected table.
Selected Class C client rows
| SCR | Effective feature | Code status | Primary work lane |
|---|---|---|---|
WBXML-C-001 |
Binary XML Structure | partial | WML-203, R0-08, historical T0-07 linkage |
WBXML-C-010 |
Encoding default attribute values | partial | WML-203, R0-08 |
WBXML-C-011 |
Binary/literal token equivalence for tags and attributes | partial | WML-203, R0-08, historical T0-07 linkage |
The selected-row audit is:
- implemented: 0
- partial: 3
- missing: 0
- direct normative WBXML tests: 3
- boundary-only tests: 0
These are feature-level evidence counts, not a WBXML compliance percentage.
The three rows expand into 47 client-applicable deduplicated clauses covering
section 5 and its subsections plus sections 6.3 and 6.4. The WML-203
direct-evidence tranche records 42 fixed-outcome fixtures citing all 47
selected clauses and promotes all 47 to implemented. All three feature-level
parent rows stay partial because their broader document-family limitations
remain.
Current implementation evidence
transport-rust owns the boundary, consistent with the repository
architecture:
map_success_payload_responserecognizesapplication/vnd.wap.wmlc;decode_wmlcinvokes the built-in, pinnedlowband-wml13-wbxml/0.3.0decoder;- WML token-table selection is keyed by the carrying MIME media type, and carrying-protocol charset metadata takes precedence over the WBXML header;
- decoder output and element nesting are bounded;
- header order, WBXML 1.3 version and WML 1.3 public identifiers, multi-byte integers (including legal leading zero-valued groups), supported charset termination, string tables, tag/attribute parser states, page-zero WML tokens, global strings/entities/extensions across unassigned pages, literal flags, PI and opaque structure, and malformed input have deterministic outcomes;
- the typed token registry accepts the full one-octet page index independently for tag and attribute spaces, resolves assigned page zero, rejects unassigned pages 1 through 254, and rejects unregistered implementation-specific page 255 deterministically;
- every default and fixed attribute in the selected WML 1.3 DTD is reconstructed before textual handoff;
- every assigned WML page-zero tag, attribute-start, and attribute-value token has a generated binary/literal equivalence pair;
- original WBXML bytes and the WMLC media type are preserved on success;
- failures use the structured
WBXML_DECODE_FAILEDpath.
Direct source-derived evidence is in
transport-rust/tests/fixtures/transport/wbxml_wml13/conformance.json and
transport-rust/src/tests/wbxml_conformance.rs. The former permissive sample
corpus now has fixed failure expectations under the pinned decoder and remains
robustness-only evidence.
Cross-layer evidence is in the schema-v2
transport-rust/tests/network/interop/wdp_cdpd_ipv4_seed.json case
selected_cdpd_wbxml_unitdata_round_trip and
wml_203_reconstructed_wdp_sdu_matches_text_engine_behavior. The test
reconstructs the opaque WDP delivery payload, assigns the WMLC media type only
at the fetch boundary, and compares native engine state/rendering with the
paired canonical text deck. pnpm test:story WML-203 exercises that paired
text deck through the WASM engine boundary; it does not move WBXML decoding
into the simulator.
There are no unpromoted selected client clauses. The source sentence tracked as
WBXML-CL-CHARSET-UNREPRESENTABLE-NAME explicitly terminates tokenisation and
therefore belongs to the unselected server/encoder profile under
WBXML-S-001; it is preserved there as not-assessed, not counted as decoder
evidence. WBXML-CL-TOKEN-CODE-PAGES is direct-evidence-backed by the bounded
registry and fixed outcomes; this does not claim token tables that WML 1.3
does not assign.
The parent rows also retain broader limitations: externally supplied implied
attribute values and non-WML document families. Generic
application/vnd.wap.wbxml routing remains a separate WAE
gap.
Server and encoder rows
The 12 WBXML-S-* rows cover binary-document structure, tokenisation,
processing instructions, comments/declarations, parsed and unparsed entities,
well-formedness, validation, default attributes, and literal attribute-name
encoding.
They are retained for source completeness and for a future independently shippable encoder/gateway module. They are not selected by the current Class C client claim and have not been implementation-audited in this pass.
Remaining WBXML work
- Extend engine structural parity beyond the focused canonical deck fixture.
- Add generic
application/vnd.wap.wbxmlrouting and non-WML token-table registries only if those document-family profiles enter selected scope. - Extend default-attribute reconstruction beyond WML 1.3 only if another version or document-type profile is selected.
- Audit the 12 server/encoder rows, including unrepresentable-name tokenisation, only when that independently shippable profile is claimed.
Modern safety, streaming, performance, and diagnostics may improve the implementation. They cannot replace these strict decode outcomes or turn an unsupported token path into a silent success.
Source handling
The WAP-192 PDFs, private text extractions, and temporary page images remain outside Git pending redistribution approval. The repository stores only source identities, hashes, normalized requirement mappings, and audit evidence.