title: Differentiate between required and optional flags in help message in Cobra
body: <p>I have created a command as follows:</p>
  <pre><code>cmd := &amp;cobra.Command{
      Use:       &quot;get&quot;,
      Short:     &quot;Gets information&quot;,
      Long:      heredoc.Doc(&quot;Long description&quot;),
      Example:   heredoc.Doc(&quot;example&quot;),
      ValidArgs: []string{&quot;arg1&quot;, &quot;arg2&quot;, &quot;arg3&quot;},
      RunE: func(cmd *cobra.Command, args []string) error {
          return myCustomExecutionFunc()
      },
      SilenceErrors: true,
  }
  
  cmd.PersistentFlags().StringVarP(arg1, &quot;arg1&quot;, &quot;&quot;, &quot;&quot;, &quot;Arg1 definition&quot;)
  cmd.MarkPersistentFlagRequired(&quot;arg1&quot;)
  cmd.PersistentFlags().StringVarP(arg2, &quot;arg2&quot;, &quot;&quot;, &quot;&quot;, &quot;Arg2 definition&quot;)
  cmd.MarkPersistentFlagRequired(&quot;arg2&quot;)
  cmd.PersistentFlags().StringVarP(arg3, &quot;arg3&quot;, &quot;&quot;, &quot;&quot;, &quot;Arg3 definition&quot;)
  </code></pre>
  <p>Now when run the command with <code>--help</code> I get the help message as follows.</p>
  <pre><code>Flags:
  arg1  Arg1 definition
  arg3  Arg3 definition
  arg2  Arg2 definition
  </code></pre>
  <p>I want to group the flags as persistent (required) and non-persistent (not required) as follows</p>
  <pre><code>Required Flags:
  arg1  Arg1 definition
  arg2  Arg2 definition
  
  Optional Flags:
  arg3  Arg3 definition 
  
  Or something like below
  
  Flags:
  arg1  Required Arg1 definition
  arg2  Required Arg2 definition
  arg3  Optional Arg3definition
  </code></pre>
  <p>I know I can use the <code>SetHelpTemplate()</code> function and set my own string that will be shown when help is instantiated, I'm wondering if there is a native cobra library or pflag way to define different categories of flags.</p>