Sorting data, picking a subset of data, and applying calipers to data, should all be separate mechanisms, which could then interact with each other in several user-selected ways.
Initially, this would just mean that one operation wouldn't effectively abort the others, as applies now. But this would also allow for very interesting interactions. You could pick a subset of the data, sort it by value, apply a caliper to part of it, and then watch entries in that caliper change through time. My favourite wish-list is to sort data by value, select the top ten values using calipers, and then see how the top ten changes over time by moving along the time dimension.
One key option for sorting/calipers/picking (not so much! this is more user-driven) could be "dynamic or static".
Static would do what happens now: the dimension values are sorted by values at selected values of the other dimensions in a 1D Ravel. That sort order is then maintained as the other dimension values are altered--say by moving from one date to another.
Dynamic would sort by values the same as Static, but when the other dimension(s) selections were altered, the sort would be re-applied to the new data.
Colloquially, Dynamic sorting would mean that the tallest bars were always at the left (or right) end of a plot.
Calipers should also have the same Static/Dynamic choice set.
Not so sure about pick: this tends to be an arbitrary set--like my 4 countries that I could live in during Covid. You want that to persist through the other operations.
Recently, pick and sort were "unpicked". Sorting on a picked selection, sorts just the picked values. Picking retain the currently sorted order.
The second feature mentioned here is "dynamic value sorting". That should be provided via a new sort order mechanism (currently none, forward, reverse and custom). "static values sorting" can continue via the current custom mechanism.
In any case, this is a dup of https://sourceforge.net/p/minsky/ravel/195/