The selector must be a ranged integer/char/bool Common root for every thing that can be considered as a user-defined contract which must be contained by a module The functional definition of the component. This is the part of the component specification that is visible by other components. Compatibility at that level is the minimum requirement for component reuse/interoperability/exchange on a functionnal level.