Хорошая схема ориентирована на клиента, nullable по умолчанию на границах и способна эволюционировать без версий. Она моделирует домен в терминах, которые клиенты действительно используют, а не в терминах таблиц вашей базы данных.
Nullability
Делайте поле non-null (!) только тогда, когда вы можете всегда его вернуть. Злоупотребление — ловушка: если non-null поле выдаёт ошибку, оно обнуляет весь родительский объект, превращая небольшой сбой в большую пустоту. Предпочитайте nullable для всего, что зависит от нижестоящего сервиса.
