Say I have, for example, a component InputMovement that describes an entity's movement speed in reaction to movement instructions from a player or AI. But now I want to add a removable, perhaps temporary, effect, like a status effect, which maybe slows down the movement speed or stops it entirely for a short time. Would it be better to put this effect data inside the InputMovement component, or have another component entirely to store the effect?
Also, I'm using Box2D in my ECS, where a component is reserved specifically to hold the Body information, and it performs well for Entities that have physical characteristics. But what about Entities that, say, don't need collision detection or kinematics, but still need position information to draw them? Is it better to create a separate Position component and have separate systems for handling rendering with Position and rendering with Box2D? Or should I use Box2D for all situations where I need position data, except that some data regarding fixtures and such is left out?