Support arbitrary key types in maps in structs