{% import "render_macros.j2" as macros %}
{{ edition }};
package {{+ package }};
{%~ set sorted_imports = imports.as_sorted_vec() ~%}
{% for import in sorted_imports ~%}
import "{{ import }}";
{% endfor ~%}
{%~ for option in options +%}
option {{+ option.name +}} = {{+ option.value }};
{% endfor +%}
{%~ for extension in extensions ~%}
extend {{+ extension.target +}} {
{% for field in extension.fields ~%}
{%+ call macros::render_field(field, package, 2) %}{% endcall %}
{% endfor ~%}
}
{%~ endfor %}
{%~ for enum_ in enums ~%}
{{~ enum_ ~}}
{%~ endfor %}
{%~ for msg in messages ~%}
{{~ msg ~}}
{%~ endfor %}
{%~ for service in services ~%}
{{~ service ~}}
{%~ endfor %}