Every way config assembly can fail with something the user can act on.
import * as Config from './config.ts'; const failure: Config.ConfigFailure = Config.InvalidPlugins({ received: 'number' }); failure.code; // 'InvalidPlugins' | 'PluginLoadFailed' | 'InvalidFlag' — switch and report
Args.ParseFailure
| ProjectRootNotFoundFailure
| FSTree.InputUnreadableFailure
| Result.Failure.Of<InvalidPlugins | PluginLoadFailed>