Funny, I see that as another reason
not to allocate each map key/index individually in the script. Are the values conditional? No. Will the values need to be changed? No. It seems to me that these are ideal conditions for populating the map in one fell swoop with
file_to_map().
At heart, this is just an issue of perspective. I tend to be pretty idealistic about coding and What Things Mean, but users are pragmatic -- they don't give a ratskin belt about
how something is done, only whether or not it works and how easy it is to use. They would rather not click a few times to download an additional file. I would rather not define a map in-script piece-by-piece with static information, because a single ASH command exists to perform all of those many commands at once. This leads me to conclude that the code which Bale posted is doing unnecessary work, and is not how maps of static information are
meant to be populated.
Pragmatically, Bale's user-centric solution saves the users some clicks when downloading and reduces the number of files by one, and is therefore better. Idealistically, my "Best Practices" approach populates a map using a single command designed for populating entire maps at once, rather than individual commands for each value (which is needless since none of the information needs to be filtered or decided), and is therefore better.
I tip my hat to you, pragmatic friend Bale. But I shall keep to my ideals (and even my
perceived ideals).
If a constructor existed in ASH to define an entire map in the same line on which it was declared (as it does for records), this discussion would be moot.