A ChartItem once the descriptor arm has been built away.
buildTree runs over these callbacks before a ChartNode is constructed, so by the time the
drawing code reads one there is no descriptor left to handle. Naming that as a type rather than
asserting it with a cast is what makes the chart's own code provably node-only: it takes
ChartProps<T, ResolvedChartItem>, so a descriptor cannot reach it without a compile error.
A ChartItem once the descriptor arm has been built away.
buildTreeruns over these callbacks before aChartNodeis constructed, so by the time the drawing code reads one there is no descriptor left to handle. Naming that as a type rather than asserting it with a cast is what makes the chart's own code provably node-only: it takesChartProps<T, ResolvedChartItem>, so a descriptor cannot reach it without a compile error.