Main logic driver is System that is what used to step each game-loop and update World
single component mapping, same as List.map - only for Component.Set inside World
Example:
system : Logic.Component.Spec Velocity world -> Logic.Component.Spec Position world -> System world
system =
Logic.System.step2
(\( velocity, _ ) ( pos, setPos ) -> setPos (Vec2.add velocity pos))same as step2 only with 3 components
same as step2 only with 4 components
3 times slower then foldN