Each interface corresponds to one extendable service from the kernel.service package
and therefore to one extension point schema definition.
A plugable extension must implement the methods of the respective interface in order to work
properly with the kernel implementation. These methods are called by the kernel at the appropriate time,
e.g., a IPrototypeProvider is required to provide its prototype elements when the kernel
calls the getPrototypes() method.
The communication between the kernel and extensions usually involves some kind of
data (e.g. Prototype). These data-related classes and interfaces can be
found in the kernel.extension.data package.
For some extensions the kernel provides abstract base implementations in the
kernel.extension.base package.