Position Event
data class PositionEvent(val source: PlayerEventSource, val fromMs: Long, val toMs: Long, val durationMs: Long) : PlayerEvent(source)
this is used to update UI based of the current time, using requestedListeningPercentages as well as saving time