ISkinComponent
ISkinLookup
OsuSkinComponents.SmokeTrail
CursorSmoke
SmokeContainer
There's always one active smoke segment and it's the direct child of `SmokeContainer`. This can be simplified as such.
Smoke
Beatmap
Handles edge cases like mentioned in https://github.com/ppy/osu/issues/19585.
BaseDifficulty
Beatmap<T>
OsuSkinComponents.CursorParticles
OsuCursorContainer