The actual algorithm used to collect unique pairs is more complex than I've written: it depends not just on the texture/sampler pairs at the callsites, but the closure of all possible texture/sampler pairs (e.g., through function parameters). I'm not sure it'll be easy to write in the WebGPU spec, since it's in terms of WGSL datatypes, not API datatypes. Should it be in the WGSL spec instead? Or should I just assume the existence of such a function, as the proposal does?