The `TimeSliceSelection` struct probably should live in `input::time_slice` as (I think) it will only be used by the input layer. ~~As I'm doing some time slice-related things in #276, let's mark this as "on hold" until that's merged.~~