Idiomatic C# Data Objects with Immutable Collections? - C#