The schema has {{ footer.schema | length }} SchemaElement {{ "object" if footer.schema | length == 1 else "objects" }}.
{% for item in schema_tree recursive %}
-
{% if item.repetition_type %}
{{ item.repetition_type }}
{% endif %}
{% if item.name %}
{{ item.name }}
{% else %}
[no name]
{% endif %}
{% if item.field_id %}
(Field ID: {{ item.field_id }})
{% endif %}
{% if item.type %}
{%- if item.logical_type -%}
{{ format_logical_type(item.logical_type) }}
/
{{ item.type }}
{%- elif item.converted_type -%}
{{ item.converted_type }}
{%- if item.precision or item.scale -%}
({{ item.precision }},
{{ item.scale }})
{%- endif -%}
{%- else -%}
{{ item.type }}
{%- endif -%}
{%- if item.type_length -%}
({{ item.type_length }})
{% endif %}
{% endif %}
{% if item.num_children and item.num_children > 1 %}
({{ item.num_children }} children)
{% endif %}
{% if item.children %}
{{ loop(item.children) }}
{% endif %}
{% endfor %}