PlayerConfig

Builds a PlayerConfig in a block, so a nested setting does not need its type named.

val config = PlayerConfig {
hdrPolicy = HdrPolicy.ToneMap
subtitles { preferredLanguages = listOf("ja") }
audio { replayGain = ReplayGainMode.Track }
}

Every field starts at the default of PlayerConfig, and the data classes check their values when the block ends, exactly as their constructors do.