/*!
\page plug_page_front Plug: Plugin Framework
\if ( PIXAR_MFB_BUILD )
\mainpage  Plug: Plugin Framework
\publicLib
\endif


\section Overview
Provides generic interface classes to implement a plug-in framework.  The
PlugPlugin class defines the interface to plug-in modules.  The PlugRegistry
class defines a mechanism for registering plug-in modules and provides an
interface for abstract plug-in base classes from which you instantiate concrete
plug-in subclasses.

The PlugPlugin class contains properties that indicate whether or not a plug-in
is currently loaded and whether a plug-in is a Python module or not.  It also
includes functions that return a plug-in's name, location in the file system,
the names of its base classes, its metadata, and any existing dependencies.

The PlugRegistry class includes methods that provides a way of registering
plug-ins with the system by providing one or more paths to plugInfo.json
files.  Other methods provide different ways to get references to registered
plug-ins and get metadata for plug-ins.

For information on how to add concrete plug-in types to applications like
Presto, see the API documentation for the libraries that implement functionality
for those types of components.  For example, the Mf library includes functions
for registering prim plug-ins; the Wd library includes functions for registering
GUI components such as editor plug-ins.

\section Plugin Metadata

Plugins are found and described using plugInfo.json files that may be read
without loading the plugin.  The structure of a plugInfo.json file is described
in detail in the \ref plug_plugInfo "PlugRegistry class".


*/
