Solución: [MemberNotNull] no tiene efecto en un método factory estático y CS8618 sigue apareciendo
CS8618 se comprueba cuando el constructor termina, y [MemberNotNull] en un método estático se ignora en silencio para miembros de instancia. Pasa los valores a un constructor privado.