Ordering
The base order of the pool — Shuffle (seeded, deterministic, reshuffled per pass) or Sorted by a field and direction.
The Options section sets the base order of the pool. Two user-facing choices:
- Shuffle — the pool is shuffled. The shuffle is a seeded, deterministic Fisher–Yates over a
stable base order (ratingKey-sorted, so it never depends on the server's return order), and it
reshuffles per pass so a looping channel doesn't repeat the same sequence every lap
(
timeline.tsseededShuffle/passOrder). - Sorted by… — pick a sort field and direction. The pool is ordered by that field and the
scheduler preserves it exactly. Sort fields come from
sort-fields.ts(channels.sortFields): Title, Year, Release / air date, Critic/Audience/Personal rating, Content rating, Duration, Plays, Date added, Date viewed, Resolution, Bitrate.
Internally these map to the ordering enum: Shuffle → SHUFFLE, Sorted → IN_ORDER (with
sortField/sortDir). A legacy BY_AIR_DATE value still exists in the enum but isn't offered as a
distinct option in the current UI. For a sorted TV channel remember the level rule: releaseDate
sorts episodes by their air date; a sorted movie channel sorts by the movie's own field.
An optional strategy layers grouping and rotation on top of this base order — see Strategies. With no strategy, the channel simply plays its pool in the order set here.
