Fix: [MemberNotNull] has no effect on a static factory method and CS8618 still fires
CS8618 is checked when the constructor exits, and [MemberNotNull] on a static method is silently ignored for instance members. Pass the values into a private constructor instead.