A plugin is a shared library that contains at least one of the following items:
one or more element factories
one or more type definitions
one or more auto-pluggers
exported symbols for use in other plugins