chart.js preview harness — synthetic data, no data/days.js dependency
| hover the chart for the crosshair readout
idx 0 / 0--:--
last --
Integrity check: the price axis, the volume scale and every drawn pixel come only from
bars[0..upto]. Step back with -10 and confirm the axis re-scales to the past
— if the future were leaking, the axis range would not change.