WBML 0.4.0 — Parameterized Query Atlas
Final status: CLOSED PASS
Canonical probe: 0.4.0-fix2
Run: 7d17ef55149e
Final matrix: 34 PASS / 0 FAIL / 0 SKIP, P–F PASS.
Research question
Section titled “Research question”Can WBML safely move beyond zero-argument reads by synthesizing or resolving 1–4 parameters without confusing “same runtime type” with “same semantic domain”?
Canonical result
Section titled “Canonical result”methods scanned 18,625parameterized non-void 4,291records 1,803blocked 3,818dangerous blocked 945unsupported blocked 1,543IL-safe 473owner resolved 382argument sets built 326argument unresolved 56observed args used 284synthetic args used 187weak observed rejected 223collection keys observed 1,280collection elements observed 586invoked 326VERIFIED 315OBSERVED-THREW 11public VERIFIED 245reflection VERIFIED 70unsafe/stale invoked 0/0stability 308 same / 7 changed / 0 failedengine exceptions 0Rejected methodology: initial 0.4
Section titled “Rejected methodology: initial 0.4”The first run used real runtime values but did not require semantic relevance. It could pass NameplateAsset.id="plate_kingdom" to a building-ID method, use a TooltipAsset index against an unrelated 8-sprite collection, or feed zero from an unrelated field into positive spacing.
A successful False/0 under a nonsense argument is false-useful evidence, so the structurally green run was rejected.
Rejected methodology: fix1
Section titled “Rejected methodology: fix1”fix1 added semantic scoring and rejected many weak values, but generic strings still leaked across domains: a color string could become a building ID, "The Old" a player option name, and textureID a zone ID.
Canonical fix2
Section titled “Canonical fix2”fix2 harvests actual bounded dictionary keys/collection elements from non-stale runtime owners, keeps provenance per source, prefers owner-domain evidence, and leaves ambiguous strings unresolved rather than guessing.
Control examples moved from nonsense to real domain evidence: bonfire, type_bonfire, human, zone key 0, and order_docks_0.
OBSERVED-THREW
Section titled “OBSERVED-THREW”The 11 throws are retained exactly with their argument provenance and exception. They are observations for those exact argument sets, not a declaration that the method itself is broken.
Machine data: /worldbox-modding-docs/data/wbml/0400-parameterized-query-atlas.json
Evidence: /worldbox-modding-docs/evidence/wbml-0400-result.txt
Detailed parameterized reference · Quick City · Next: WBML 0.5