Помогите придумать или найти название для архитектуры проекта (ECS, C#)
Я разработчик на Unity и для одной коммерческой компании я разработал решение для создания сценариев через граф и последующего их воспроизведения
При создании этого инструмента, я вдохновлялся архитектурой ECS и придумал достаточно странную архитектуру, для которой хочу придумать название или найти аналоги у других
Архитектура
У некоторых нод (Node) есть список компонентов (components), в котором хранятся не сами компоненты, а их интерфейсы, что позволяет обойти ограничение ECS на компоненты одного типа в сущности
При проигрывании сценария, нода при активации, передаёт свой массив компонентов в шину данных (SignalBus от Zenject). Системы (systems) через шину принимают компоненты и исполняют их
То есть сама идея разделения данных и их исполнения взята из ECS, но при этом тут отсутствуют сущности (entity) и вместо них для компоновки компонентов используются ноды
Я думаю, что это плохой ECS, так как эта архитектура не подразумевает Data Oriented дизайна и хранит компоненты крайне не эффективно, но сама идея систем, которые исполняют компоненты, тут сохранена
Я нашёл похожий по названию подход CGS на Rust, но тут скорее речь идёт про модификацию оригинального подхода ECS с превращением сущностей в компоненты со указателями на компоненты
И также стоит учитывать тут шину данных, так как она работает в обе стороны. То есть системы сами могут посылать данные нодам (да, ноды имеют поведение при активации)
Как вообще такое можно охарактеризовать? Я думал про что-то вроде Node Component System, но тут проблема в том, что ноды имеют своё поведение и тут правильнее сказать про использование нескольких архитектурных шаблонов
Часть с нодами и графам понятна, это просто ориентированный исполняемый граф с нодами как единицами исполнения. Но как назвать этот огрызок ECS, который работает через шину данных и связывает ноды, компоненты и системы?