Я думаю, что лучший способ сделать это сделать свойство необязательным и изменить это поведение в некоторых подклассах, внедрив собственный механизм проверки (документация доступна в документации по основным данным, проверка является частью API)
Тогда по умолчанию свойство является необязательным, но в подклассах, которые вы хотите, чтобы оно требовалось, вы можете просто сделать недействительным значение свойства, когда оно nil
или пустое, и даже заставить его зависеть от других факторов.