Notes from yched's speech at the Paris core code spring 2012/04/28-29. Use with caution after 2012/05, fast moving code:
A “Plugin Type” is a class.
The list of existing plugins of a plugin type is enumerated using a Discovery class
PluginTypeFactory implements FactoryInterface
PluginTypeDiscovery implements DiscoveryInterface
PluginTypeMapper implements MapperInterface
DiscoveryInterface::getDefinition($plugin_id = 'textarea')
DiscoveryInterface::getDefinitions()
?::createPluginInstance()
?::getPluginInstance(array $options = array()) ← think service locator
$plugin→set(….)
Code under development in EclipseGC's sandbox at http://drupal.org/node/1441840 branch: plugins-next