In [Test] mode, suppose you have an intraday t8 file, and there are four actively traded and unexpired futures contracts, say, for ES (E-Mini).
Every minute, some contracts will have a tick, and some will not. There is a varying number every time.
So when using BarPeriod=1, you call contractUpdate(). It only loads as many contracts as exist at the given timestamp rather than all actively traded contracts.
Why not allow the user to select a date range of ticks? Now I understand there can be duplicate contracts in a given date range, so maybe have it output an array of CONTRACT pointers, so that only the most recent unique contract can be selected in the set.
In other words, the most recent March 2021 ES tick would be picked up and not any prior one. Same for the most recent June 2021 ES tick.
The attached snapshot helps to illustrate the problem.
I do realize that one workaround is to fill the t8 file with many zero-volume ticks for all contracts, but that would make the t8 files larger.