How to output all commands and options through -- help
How to output all commands and options through --help
Similar to --help full
You'd probably want to change the default HelpOption to not be recursive (as of v2.0.0), firstly. Then you could add a --help option to each of your sub-commands. Make sure all help actions are in methods that can be consumed by the root command. Add an argument to the default HelpOption to allow for full or detailed or summary or whatnot.
Then you would create a custom SynchronousCommandAction object that you could assign to your HelpOption's Action property, replacing the default HelpAction assigned to it. When --help full is called, your help action would gather all the help from your sub-commands so that they are displayed.
Now, given the help system shipped with v2.0.0, this likely won't result in what you're looking for--but it might. If not, the answer is going to be a lot more difficult, since in v2.0.0 the HelpBuilder and HelpContext were all made internal, making customization difficult if not impossible! My solution to this problem is to copy the internal classes to my own library and make them public. But, for extensive help customization, the reality is you're going to need to roll your own HelpBuilder anyway, so maybe just try to create something similar to what's in the System.CommandLine library, but which meets your needs.
Either way, you should be able to achieve what you desire. The standard out-of-the-box help is usually "good enough" for the most general cases. Anything very complex like what you need is most likely going to need a good bit of work to accomplish.