C# 9 introduces an option to initialize immutable object with object initializer syntax, using init only setters:
class