"Every user-defined model must extend the base Model class" - дальше не стал читать. Ещё когда на классах писал - не использовал наследование (только композицию) Сейчас вообще без классов пишу
Это эмуляция алгебраических типов данных :) Если заглянуть в сорсы – базовый класс *вообще* ничего в себе не содержит. Это исключительно для type-safety :)
Dart это ООП язык же, тут всё класс, к сожалению. Если заглянуть в самую популярную ФП библиотеку то можно встретить такие занятные вещи как class Functor {...} :))