In particular I don't like the non-null assert around
`GetCurrentItem()`, because there's no reason why it _couldn't_ be
`null`.
Consider, for example, if these panels are used in matchmaking where
there are no items initially present in the playlist.
The ruleset nullability part is debatable, but I've chosen to restore
the original code here.