Expose Mutable Properties as Immutable

It is a common API design pattern. But how to do it in Swift is not well known.