Where a session-anchored study gets its sessions from: a
TradingCalendar, or the same thing one step earlier — an explicit
Session list (from generateSessions, from a feed's own schedule
table, or written by hand). A raw list is validated and sorted exactly as
TradingCalendar.fromSessions would, so an overlapping or malformed
schedule throws here rather than producing quietly wrong anchors.
Where a session-anchored study gets its sessions from: a TradingCalendar, or the same thing one step earlier — an explicit Session list (from
generateSessions, from a feed's own schedule table, or written by hand). A raw list is validated and sorted exactly asTradingCalendar.fromSessionswould, so an overlapping or malformed schedule throws here rather than producing quietly wrong anchors.