code: function use() {
      var args = Norma('{plugin:o|f|s, options:o|s|n|b?, callback:f?}', arguments)
      return use_plugin_desc(
        build_plugin_desc(args, useopts, eraro),
        useopts,
        eraro
      )
    }
docs: This is the function that loads plugins. It is returned for use by the framework calling code. Parameters:  * _plugin_ : (Object or Function or String); plugin definition * if Object: provide a partial or complete definition with same properties as return value * if Function: assumed to be plugin _init_ function; plugin name taken from function name, if defined * if String: base for _require_ search; assumes module defines an _init_ function * _options_ : (Object, ...); plugin options, if not an object, constructs an object of form {value$:options} * _callback_ : (Function); callback function, possibly to be called by framework after init function completes  Returns: A plugin description object is returned, with properties:  * _name_ : String; the plugin name, either supplied by calling code, or derived from definition * _init_  : Function; the plugin init function, the resolution of which is the point of this module! * _options_ : Object; plugin options, if supplied * _search_ : Array[{type,name}]; list of require search paths; applied to each module up the parent chain until something is found * _found_ : Object{type,name}; search entry that found something * _requirepath_ : String; the argument to require that found something * _modulepath_ : String; the Node.js API module.id whose require found something * _tag_ : String; the tag value of the plugin name (format: name$tag), if any, allows loading of same plugin multiple times * _err_ : Error; plugin load error, if any