The contract a timeline exposes to the rows beneath it, so an app-wide
marker template can reach a dot the organism does not itself render.
<cngx-timeline> is data-driven in v1: the consumer owns the whole row
template and writes <cngx-timeline-item> themselves, which means the
organism has no handle on the marker inside it. Passing the resolved
template through DI is what closes that gap without the row having to
thread it down by hand.