The "Perfect curve" one in particular... fixes test failures, as some tests were relying on this particular casing. But the new version feels more correct anyway, so it's whatever.
BEZIER
Also throw on unknown types.
LegacyRulesetExtensions
As discussed, it isn't used in stable like this. Was a mistake.
LastTick
LegacyLastTickOffset
Default to normal bank if invalid sample bank is specified
stable does not treat unknown enum members as `None` / `Auto`, it treats them as `Normal`: switch (sampleSet) { case SampleSet.Normal: default: sample = 0; break; case SampleSet.None: case SampleSet.Soft: sample = 1; break; case SampleSet.Drum: sample = 2; break; } (from https://github.com/peppy/osu-stable-reference/blob/1531237b63392e82c003c712faa028406073aa8f/osu!/Audio/AudioEngine.cs#L1158-L1171).
Basically matching the old code more closely to avoid too much precision from doing math in a slightly different way.
LegacyDifficultyControlPoint
SliderVelocity
SliderVelocityMultiplier
Velocity
I like no-braces for single-line ifs as much as anyone, but with inline comments involved it gets rather dicey.
Reverse()
SliderPath
segmentEnds
IndexOutOfRangeException
.Distinct()
truncateEndingDuplicates()