> Кто как решает такие задачи в плане организации кода
для начала введем понятие "клиентский код". То есть есть некий код, который дергает какую-то штуку. Код который дергает, то есть тот код которому надо что бы что-то произошло, это клиент. Штука которую оно дергает - назовем поставщик услуги (сервис). Между ними контракт - мол "если я тебя так дерну - ты мне должен так вернуть, а он такой а если у меня так-то то я тебе исключение кину, договорились мол".
Каждому клиенту нужен свой специализированный контракт. Тот который позволяет клиентскому коду меньше думать. "мне нужна шляпа завернутая в мэпу вот таким образом" - вжух у тебя сервис с одним методом который возвращает такую шляпу.
Если выходит так что многим нужен одинаковый контракт - ну значит обобщаем контракт. Таких будет маленький процент от всех. Так и организуем. От клиента и его проблемы к штукам которые это делают.