LAYER_OPACITY_OPAQUE
Per-layer opacity, keyed the way each kind of layer is already identified elsewhere.
Two key spaces share one map because they cannot collide: a built-in overlay is keyed by its catalogue id (hillshade), an imported layer by its URI. The URI — not the id — is deliberate: a file-backed MapLayerItem gets a fresh random id on every load, so an id key would lose the user's setting at the next start. hiddenLayerUrls keys visibility the same way for the same reason.
Stored as a stringSet preference of key|:|value entries, matching how networkMapLayers encodes its records — DataStore has no map type.