ChatCommandParser
Class in charge of handling argument parsing for commands.
Argument parsing is a tricky beast. This class employs multiple strategies in order to try to keep argument parsing as intuitive as possible, without breaking expectations too much. It supports both positional and keyword arguments, plus optional and required arguments and comprehensive error handling.
Please note: The order of arguments in your Arguments subclass matters. Converters are always run in the order they're defined, and positional arguments are also parsed following this order. This means that converters that take lambdas as constructor parameters are able to rely on the values provided by previously parsed arguments.
We recommend reading over the source code if you'd like to get to grips with how this all works.
Functions
Given a builder returning an Arguments subclass and CommandContext, parse the command's arguments into the Arguments subclass and return it.