That's probably the only case where it is NOT fully asynchronous aside of RTVolume tickkind in reqmkdata (which are NOT tick level)
As per IB: You ALWAYS have a tickSize after you have a tickPrice, seems the way IB solved that.
Documented
you even have too many (by 1 in one case)
?