All Modules
	* Modules that request InSim Packets
		* There should be a static or peusdo read only array containing packets that are requested by the module.
			Packets that only go to one method can be defined as just the method name.
			Packets that need to go to more then one module should be made into an array of methods.
			Packets that need to go to a sub modules method should be moved into mulilevel array of methods.
	* All modules must define the following consts; NAME, AUTHOR, VERSION & DESCRIPTION.
		* NAME is the short name of the module.
		* AUTHOR is the person, or team who made the module.
		* VERSION is the version string of the module.
		* DESCRIPTION is a very short sentance about the module.
	* All non-core modules must be loadable and unloadable at runtime.
		* By not defining an __wakeup() & __sleep() method you will make your module immuteable.

Packets Module
	* The Send Only Packets
		- Make a short hand function for sending these.
			+ Implament named args, via a tokenized string.
			+ Implament property order syntax, excluding spare or indelabled propertys.
		- Delete all PACK consts on packets that can't be sent.
	* The Recv Only Packets
		- Delete all UNPACK consts on packet's the can't be recived.
	+ Packets with strings should be sent optomized for size. (To the 4th Byte)
	+ Write $pck-Size at send time, to do with point above, for variable length packets.
	+ Headers should be readable not writable.
		+ Packet properts can only be public (Writeable) or protected (Readable), never private (Unobtainable).
	o Chainable methods. (Eg. $MTC->UCID(0)->Msg('Hello Chainable Commands')->sendPacket();)

Plugins Module
	* Command Targeting System (Eg. `prism kick @FOX` or `prism say @ADMINS I think Dygear is using a speed hack.`);
	* Admin function levels handled outside of end-user plugins.
		= Access Denied Callback for the Plugins?
	* Hooks for any stream (Eg. PRISM Console [STDIN], Telnet Console [TELNET], WWW Access [HTTP].)
