We should also make it a List<> of something else.  The way it is right now, we are leaking the fact that we are using the VersionedIntervalTimeline, so it's possible that if we make changes to that, all of a sudden this interface is going to change and it will become a backwards incompatible change.

We should instead introduce an interface or class that provides access to the data that this might need to make its decisions, but allows for a super secret payload object that the call site will be aware of but this code won't.