{#
The two figures on the Architecture page — one set of coordinates, both
languages.
Same contract as `_diagram.html`: every word arrives as a parameter, so the
Chinese page does not fork the geometry. The difference is where the words
come from. `_diagram.html` reads `t.diagram`, which is site chrome carried in
`build.py`; these are page copy, so the page that shows a figure passes its
own labels, the way `introduction.html` holds its own prose.
No classes anywhere. Colour and size are SVG presentation attributes, and
`data-accent` marks what the surrounding prose is pointing at — the same hook
`brand.css` already styles for the request figure. `role="img"` is what picks
up the frame in `brand.css`, GAP 2.
#}
{#
Four boxes on the left, four on the right, four arrows between them: the whole
surface an app touches. The rows are paired on purpose — each contact point is
one row, so "four places" is something the reader counts rather than something
the caption asserts.
#}
{% macro boundary(t) %}
{% endmacro %}
{#
Two ways in, one template, two ways out.
The accented box is the whole point of the picture: a full GET and an htmx
swap meet at one file, so the page and the fragment it swaps cannot describe
different things. `@render(..., partial=...)` is what guarantees it.
#}
{% macro render_path(t) %}
{% endmacro %}