Some of the fields on Command are related and may be grouped together for clarity. For example, these Help.+ fields could be grouped together under a Help field:
HideHelp :arrow_right: Help.Hidden
HideHelpCommand :arrow_right: Help.CommandHidden
or these fields related to shell completion could be under a ShellCompletion field:
nested fields are more difficult to reason about and more visually complex than a single level of fields
logical groupings of fields "hides" them from each other
depending on the "zero value" of simple types means that default values for certain behaviors are tightly coupled to the field names, e.g. HideSomething (default on) vs. EnableSomething (default off)
Some of the fields on
Command
are related and may be grouped together for clarity. For example, theseHelp.+
fields could be grouped together under aHelp
field:HideHelp
:arrow_right:Help.Hidden
HideHelpCommand
:arrow_right:Help.CommandHidden
or these fields related to shell completion could be under a
ShellCompletion
field:EnableShellCompletion
:arrow_right:ShellCompletion.Enabled
ShellCompletionCommandName
:arrow_right:ShellCompletion.CommandName
or all of these could be grouped under an
Options
orConfig
field (?):There are arguable tradeoffs, of course, such as:
HideSomething
(default on) vs.EnableSomething
(default off)Ideas and questions and concerns wanted 🙇🏼