Well first of all it depends on what you really need. In 2D Platformer, you don't really need a real rotation value, only for your character to look in the right direction.
Position is the most basic and should be implemented most of the time (maybe not in some really exotic and transcendent gameplay).
Best thing might be to implement a component for every physical aspect you want to check for:
- is an object collideable, get a collideablecomponent
- is it movable? Movecomponent
- does it emit like a force on other objects (like wind from a fan), create a component for that
These should be your atoms, especially in your game engine. Just imagine you want to create something like this:
you have components for moving and collision combined, cause everything that moves can collide.
now you want something like a ghost (can move, can't collide) and jelly (can't collide, can't move)
Only if you are 100% certain you don't need it, you can go for those hybrids.
What I'm working on is a Node-based system. These are hybrid structures but are gatherings of those atomic Components. An Object may have the moveCollideNode, which is the positionComponent, the moveComponent and the collideComponent.
Edit: What I forget to mention was, that other parts of your engine might need those simple components. Like position and direction for your graphics engine or the object state for controls (just collided and is dizzy, so can't shoot). Someone could manipulate your physic properties in those parts if he has access to that kind of component.