C# added support for explicitly declaring structs as readonly and allowing you to pass them and return them while preserving the readonly semantic (in and ref readonly).
Investigate using this feature, where appropriate, in order to reduce allocations, increase maintainability, and potentially to improve perf.