есть секта адептов "выпилим аннотации, так это код фреймворка", но строго говоря это не имеет особого значения. Ни базовый класс, ни трейт не приведут тебя ни к каким проблемам. И с точки зрения разраба либы это самый дешёвый и безотказный вариант
меня самого долго пинали базовым классом для саг, но объективно я не вижу ни единого варианта его замены на что-то более "адекватное", что не заставило бы клиентский код экстендить что-либо
трейт плохо подходит как раз потому, что он на тип не влияет. А значит на уровне инфраструктуры невозможно отличить агрегат от любого левого объекта без наркомании с рефлексией