в C# nullable - чисто нотация, т.е. ты говоришь компилятору, что при сборке этого проекта нельзя давать нулы туда, где тип не анотирован nullable. тот факт, что это лишь нотация, означает, что это легко обходится, так как не форсится в рамках рантайма, потому что исторически сложилось, что ссылочные типы в шапре nullable по умолчанию. т.е. если код, вызывающий твой конструктор, не будет иметь нотацию включённой, компилятор спокойно пройдёт мимо, если туда передадут нал. Или же можно передать null!. ! означает что ты клянёшься компилятору что там точно не null, а он, так как выхода у него нет, тебе наивно верит и собирает код.
Разбор того как устроена работа с Nullable типами в разных версиях языка: