{% for key, command in commands %}
  /**
   * {{ command.description|raw }}
   *
{% if command.arguments %}
{% for argName, argDescription in command.arguments %}
   * @param {{ argName }}
   *   {{ argDescription|raw }}
{% endfor %}
{% endif %}
{% if command.optionsConcat|raw %}
    * @param array $options An associative array of options whose values come from cli, aliases, config, etc.
{% endif %}
{% if command.options %}
{% for optionName, optionDescription in command.options %}
   * @option {{ optionName }}
   *   {{ optionDescription|raw }}
{% endfor %}
{% endif %}
{% for usageName, usageDescription in command.examples %}
   * @usage {{ usageName|raw }}
   *   {{ usageDescription|raw }}
{% endfor %}
{% if command.depsConcat|raw %}
   * @validate-module-enabled {{ command.depsConcat|raw }}
{% endif %}
   *
   * @command {{ command.name }}
   * @aliases {{ command.aliases|join(',')  }}
   */
  public function {{ command.method }}({{ command.argumentsConcat|raw }}{{ command.optionsConcat|raw }}) {
    // See bottom of https://weitzman.github.io/blog/port-to-drush9 for details on what to change when porting a
    // legacy command.
  }

{% endfor %}
