That is when data oriented programming gets into the equation.
Classical ECS as it originally appeared on the literature is coding against interfaces, COM or Objective-C protocols style.
So yeah, one composes those interfaces together, there is no class inheritance, only composition, delegation, and a system is composed from a jungle of such components.
It is also a reason why DirectX is COM based, instead of basic Win32 calls.
What do you mean by classical ECS? I’ve always read that the Entity-Component-System approach originated in the gaming industry, completely unrelated to what you wrote about COM, etc.
Classical ECS as it originally appeared on the literature is coding against interfaces, COM or Objective-C protocols style.
So yeah, one composes those interfaces together, there is no class inheritance, only composition, delegation, and a system is composed from a jungle of such components.
It is also a reason why DirectX is COM based, instead of basic Win32 calls.