The anatomy of a plugin
A plugin is made up of one or more modules that each have one or more tools contained in it. The module can have the scoringTools, infoTools, and totalTools array objects defined. If defined the ModuleManager will process each tool and add the appropriate events and callbacks to the tools. The contract for the module looks like figure 1 below
Figure 1: The module contract (TypeScript)
//Required properties public id: string; public author: string; public version: string; //The different types of tools. Each type is optional. //There must be at least one tool defined in at least //one of these arrays for the module to do anything in //the system. public scoringTools: IScoreToolOptions[]; public infoTools: ITool[]; public totalTools: ITotalTool[]; //Setup and cleanup routines that the module can //define. Defaults to null functions. public init: ICallback; public destroy: ICallback; public activate: ICallback; public deactivate: ICallback;
contains tools
the common tool contract
Plugin Types
Scoring Plugin