TranslationCatalog constructor
One file per locale, named for it, each a flat object of key to string:
en.json holding {"save": "Save"}.
Unnamed because it is the shape every declaration had before there was a choice, so those go on compiling.
files is a glob, package-relative like every other path in this file,
and the locale is each file's base name: en.json is en. That is a
convention rather than a parse, and a file whose name is not a locale tag
is skipped rather than loaded as a locale called schema.
Implementation
const factory TranslationCatalog({
required String name,
required String files,
String template,
}) = FilePerLocaleCatalog;