Компоненты - это даные для сущьностей. Могут быть тольно struct и обязаны наследовать один из интерфейсов который определяют тип компонента. самый базовый IEcsComponent.
Системы - это основная логика, тут задается поведение сущьностей. Существуют в виде пользовательских классов, реализующих как минимум один из IEcsInitSystem, IEcsDestroySystem, IEcsRunSystem интерфейсов.
Является двжиком систем, определяя поочередность их вызова и предоставляющий механизм для сообщений между системами.
## Раннеры/Сообщения
Раннеры это система сообщений для систем. Может использоваться для создания реактивного поведения или для управления очередью вызовов систем. Сообщения это просто интерфейсы наследуемые от IEcsSystem, чтобы интерфейс работал как сообщение нужно реализоват соотсветующий раннер.
Сообщения реализованные по умолчанию:
`IEcsPreInitSystem`, `IEcsInitSystem`, `IEcsRunSystem`, `IEcsDestroySystem` - сообщения жизненого цикла Pipeline
`IEcsPreInject`, `IEcsInject<T>` - сообщения системы внедрения зависимостей для Pipeline. Через них прокидываются зависимости
`IEcsPreInitInjectCallbacks` - Так же сообщение системы внедрения зависимостей, но работает в пределах до сообщения IEcsInitSystem, сигнализирует о инициализации предварительных внедрений и окончании.
Новые сообщения реализуются через интефейсы наследованные от IEcsSystem, например, стандартное IEcsRunSystem.Run(EcsSession session) запускается у всех систем при помощи Runner-а. Runner-а можно получить вызыввав EcsSession.GetRunner<TInterface>().