--- /dev/null
+{% 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 %}