I worked on hashing map tile coodinates and found collisions with my approach.
Coordinates like 1000/0/1000 and -1000/0/-1000 results in the same hash.
newPos is a quantized float3 and the following doesn’t work like expected:
int hash = (int)math.hash(new float3(newPos));
This does work:
int hash = (int)math.hash(new int3(newPos));
Never looked closely at this but it appears uint is an optimization. Maybe they just wanted to standardize on the lowest common denominator for hashing? As there is hashwide which works but returns a uint3. Which you can use as a key at the cost of some extra space.