In order to build plug ins one can use the following features of PbML. This list is in no way exhaustive, nor it is mandatory. One can imagine many more ways to extend a PbML world!
6.1 EXTENDING CLASS FUNCTIONALITY
By defining again a class in another file one actually extends the class capabilities, for example one can add new methods, new phase handlers, new attributes and so on, provided the does not mingle with previous definitions.
It is obvious that it should be good practice to design, if possible, new phases for new actions, so it is perfectly legitimate to ask the person who runs the server to add a new phase between existing ones.
6.2 ADDING NEW DEVICES CLASSES
By designing new class describing new devices, one can easily and seamlessly add new functionality to already existing objects.
For example one can create a long-range radar named LongRangeRadar that extends from the interface Radar (if any) with powerful scanning capabilities. If a player can afford to buy such a radar and installs it on board of one of its airplane, than this airplane will have among its available commands, the one implemented by the LongRangeRadar.
Using new classes to be included as devices is a much more cleaner and safer way to improve a class functionality than by adding new code to the class itself. One disadvantage is that new devices must be manually installed on existing objects, whereas modifications to already existing classes automagically appear on every object of the extended class.