Slots, not children
Most engines hand a component one anonymous block of content. A Damask template declares as many named slots as it wants: <slot> marks the place, its body is the fallback, and slot="…" on a direct child fills it. Several children may name the same slot, and a <slot> placed where a fill goes forwards a slot of your own straight through.
<Frame title={self.heading.clone()}>
<p>{self.body}</p>
<span slot="footer">© {self.year}</span>
<a slot="footer" href="/about">About</a>
</Frame>