Host specification for WebGPU uses thread instead of invocation, and accordingly, for consistency, corresponding WGSL entries should adopt thread naming too (say, instead of local_invocation_idx). Metal does a great job at this (and matches with its usage of grid, which is the case in WebGPU host specification too): thread_position_in_grid, threadgroup_position_in_grid, thread_index_in_threadgroup, thread_index_in_simdgroup, ...