Awesome, thanks for this clear and thorough response! In that case I think I’ll stick with delegation/wrappers vs. extension interfaces, at least for now. Explicitly decorating/undecorating instances is verbose, but once decorated I think there are fewer gotchas.
KT-21955 delegating to a class would make this more convenient/less repetitive.
If someday union types are added, then presumably I could drop the explicit delegation/wrappers.