я хз зачем array shape когда есть фактически аналог дата классов
ну а так в проекте-то да. разве что иногда пары значений возвращаем через индексные array{string, int}, чтобы потом так же получить [$val1, $val2] = $this->resolve() в тех местах, где результатом работы метода реально является два значения. Но такое обычно в приватных методах, не контракт наружу