Suppose you have a Map<AssetId, Position>.
If this is generalized to Map<u64Key, Opaque64ByteEntry>, you can enforce on the interface level that certain integer ranges of the key correspond only to Positions, and the opaque types will be transmuted under the hood.
You can now safely use this container to store other object types as long as the key space is carefully defined and the interface is correctly implemented!
With Lists, itβs even easier because you can reserve discriminant bytes on the inner object itself (everything by default becomes an Enum)