withSegmentObserver
These options with a different segmentObserver, everything else unchanged.
The one field a layer above legitimately needs to replace: composing several observers into this single slot is what rabosh-api exists to do, and without this it would have to restate every option here to do it — so an option added below would be silently dropped by a facade that had not been updated. There is deliberately no general copy: this is not a data class, for the reason above the constructor.