C# 11 Required Members: Stop Shipping Half-Initialized Objects
C# 11's required modifier turns 'trust me, someone sets this property' into a compile-time guarantee. Here's how it works, where SetsRequiredMembers fits, and why deserializers can still bypass it.