{%- macro directiveParam(name, type, join, sep) %} {%- if type.optional %}[{% endif -%} {$ name | dashCase $}{$ join $}{$ type.name $}{$ sep $} {%- if type.optional %}]{% endif -%} {% endmacro -%} {%- macro functionSignature(fn) %} {%- set sep = joiner(', ') -%} {$ fn.name $}({%- for param in fn.params %}{$ sep() $} {%- if param.type.optional %}[{% endif -%} {$ param.name $} {%- if param.type.optional %}]{% endif -%} {% endfor -%}) {%- endmacro -%}