Вернуть объект, который вы потом засериализуете как надо, или вернуть new JsonResponse проблем никаких нет. И нет ради чего подклбчать абстракт контроллер
В будущем буду уходить, не думал что это не айс практика
Абстрактконтроллер это чисто декоративная штука, которая и не нужна на самом деле. В отличие от Command, которое имеет в себе логику и от неё таки надо наследоваться.