Is your feature request related to a problem? Please describe.
Commands should be the easiest part of the coding process, but due to the settings and translation API, the code is badly formatted and unreadable.
It's even worse than that, not having any formal way to code commands makes the code harder to test, which makes us only test manually. This may be good if the API is consistent, but as we can see from recent events, that it's not the case and caused many bugs.
Describe the solution you'd like
The solution consists of several steps:
- Test API - for testing commands and events, making it easier by abstracting the environment and making it easy to simulate events and users.
- Command API - for uniting all commands around one tested API. Making it much harder to have bugs in the command.
This solution will need some kind of draft, to not make them another inconsistent APIs like the Translation API.
Describe alternatives you've considered
Another alternative solution is to make commands simpler to understand, without an API, but that will lose the uniformity of the testability of each command.