A headless video player for shared Kotlin code: one VideoPlayer interface over Media3 ExoPlayer on Android and AVPlayer on iOS, a typed state flow with position, buffering, picture size, volume, mute and repeat mode, and an explicit release contract. Render it with kmptoolkit-video-player-compose; on desktop add kmptoolkit-video-player-vlcj for the playback engine.