Currently cities_iterate() is implemented as iteration of player's city list inside iteration of players.
It's likely that hash_data_iterate() from the cities hash would have better performance. Should at least measure it (and then document the result, so we know in the future that it has been already done)
Not sure if this would retain game reproducibility, i.e., does hash_data_iterate() go through entries in the same order, e.g., after save/server restart/load.
Currently cities_iterate() is implemented as iteration of player's city list inside iteration of players.
It's likely that hash_data_iterate() from the cities hash would have better performance. Should at least measure it (and then document the result, so we know in the future that it has been already done)