The reference page for world.GetMedal says:
"If the world already knows this medal was earned before, the hub will not be contacted."
I had always interpreted this to mean:
"If the world already knows this medal was earned before, the proc will return the correct value without contacting the hub."
But it looks like it simply just doesn't contact the hub and returns an empty string immediately. If I get a player's list of medals, award the player a medal (or remove one), then try to get the list again, world.GetMedal() just returns an empty string.
I understand why it'd keep track of what medals have been awarded and only contact the hub when necessary, but why doesn't it return the list of medals in this case? Is this a bug or does the intended behavior just leave something to be desired?