[x] Not crash if an entry is missing in secrets until that entry is needed. So you don't e.g. need the slack token if you're not running in slack-mode.
[x] Print a helpful error message as to what went wrong (which field was missing in secrets).
[x] Have a mechanism for setting all secrets and settings with environment variables rather than in a file. The environment variables should override values in files, if both are present.
It should
secrets
until that entry is needed. So you don't e.g. need the slack token if you're not running in slack-mode.secrets
).