namespace GameCore.ECS.Interfaces;
///
/// The contract for all game logic systems.
/// Systems are stateless classes that contain all the logic.
/// They operate on entities that possess a specific set of components.
/// For example, a MovementSystem would operate on entities with PositionComponent and VelocityComponent.
///
public interface ISystem
{
///
/// The main update method for a system, called once per game loop.
///
/// A reference to the main World object to query for entities and components.
/// The time elapsed since the last frame.
void Update(World world, float deltaTime);
}