Solução: [MemberNotNull] não tem efeito em um método factory estático e o CS8618 continua aparecendo
O CS8618 é verificado quando o construtor termina, e [MemberNotNull] em um método estático é ignorado em silêncio para membros de instância. Passe os valores para um construtor privado.