Mainly an issue with "limit distance snap to current time". Reported in
https://discord.com/channels/90072389919997952/1259818301517725707/1369037235797753999.
This slightly changes behaviour of distance snap when the mouse is near
the edges of the screen (will turn off snap rather than clamp to edge as
previously), but I think that's probably fine.
- It was logging success before actually succeeding.
- It appears in practice that this code can somehow actually nullref.
Unfortunately logs provided in that instance were not enough to
pinpoint what (because of lack of line numbers). I'm hoping that by
logging as error, and therefore to sentry, we can actually retrieve
this information so that there's no need to work blind.
I'd have preferred a `get; init;` property but tests were also attached
at the hip to the public bindable. Without some extra composition this
is the best that I can do.
The original `IEnumerable` flow prioritised slight performance gains,
but a filter's implementation could actually make this detrimental to
overall performance.
I noticed in passing that there were already potentially multiple
enumerations, via `updateYPositions` and the final `ToList` call. Rather
than faffing around, let's keep things simple and require lists.
In benchmarking, the difference is (currently) negiligible. Slight
improvement if anything.