It is useful to have enums for language names + associated data to avoid errors due to stringly typed language names.
To manage language names being removed or renamed, we need to either leverage the alias field or have some other extra file. Those enum case names will be added as "deprecated".
Some constraints we need to handle:
Some things we can rely on (but should have tests for)