Weak Ref
js actual: the native JS WeakRef (object identity, true weak semantics).
wasm actual: a JS WeakRef can't reliably hold a Kotlin/Wasm heap object — it must be boxed in a JsReference whose box has no strong holder, so the WeakRef can clear while the boxed object is still in use (premature symbol-cache eviction → re-rasterization). The sole consumer is the bounded MIL-STD-2525 symbol cache, so retain strongly: bounded memory, no premature eviction.
A weak reference used by the MIL-STD-2525 symbol cache so unused earth.worldwind.shape.PlacemarkAttributes bundles can be reclaimed. js uses a native JS WeakRef; wasm retains strongly (a JS WeakRef can't reliably hold a Kotlin/Wasm heap object — see the wasm actual), which is sound because the cache is bounded to the finite set of MIL-STD symbol codes.