эта логика будет применена ко всем сущностям в приложении, если нет, то в data класс она реализована именно так?
description will not null (Gson set it). Because we know it (from API doc)
Это вытекающее следствие. Если вы создадите базовый класс с final полями, то их надо будет проинициализировать.
Поэтому есть красивый финт:
1) вы делаете приватное поле и объявляете его нулл
2) но оно не нуллабл по документации! Gson плевать на то что оно файнал, он легко его перепишет (рефлексия)
3) для получения этого поля пишется field get() = _field!! - это даст нам ненуллабл поле