* Specification: * Each plug-in module should declare one or more extensions. They add functionality to extension points defined in other modules. * Plug-ins may also declare extension points. These are places that allow adding functionality to the developed plug-in. * Plug-ins must have: * source code * tests( unit, integration) * configuration files * build files * compiled code. * They may also have: * resources * external libraries.