{#
  Task-body section helper.

  The report spine renders its own fixed sections unconditionally — an empty
  `Missing Information` there is a positive statement. A task body is
  variable-shaped instead: most of its fields are schema-optional, so a heading
  over `_none_` would be noise rather than news. `section` therefore emits
  nothing at all when the path carries no value.

  Import `with context`, otherwise the `md` / `md_has` globals the renderer
  binds are not visible inside the macro.
-#}
{% macro section(path, title, level=3) -%}
{% if md_has(path) %}
{{ "#" * level }} {{ title }}

{{ md(path, level + 1) }}
{% endif %}
{%- endmacro %}
