horizontal composite: columns laid side by side, each one a vertical stack of ordinary blocks;
the row's height = its tallest column. The whole row is kept together (ensureSpace for the full
height, never breaks inside) — meant for headers/info sections, not page-length content.
v1 scope: children that paginate themselves or force page-breaks (table/section) are rejected
fail-fast at build time.
horizontal composite: columns laid side by side, each one a vertical stack of ordinary blocks; the row's height = its tallest column. The whole row is kept together (ensureSpace for the full height, never breaks inside) — meant for headers/info sections, not page-length content. v1 scope: children that paginate themselves or force page-breaks (table/section) are rejected fail-fast at build time.