It would be great if we could specify the superclass of specific Plans and specific Sprite Definitions. The options would be from a list of abstract classes that extend from PlanBase and SpriteBase (presumably that do not implement the ExecuteRules method, although this point is contestable).
This way, if some sprites or plans share functionality, it can be in a shared superclass, but not in the base class because not all sprites need it. It is also possible to override methods in this way, for certain sprites or plans.
My reason for this mainly is that I want a plan that does something exactly once, and if I plan on having an arbitrary number of these, I can't count on map flags to be plentiful enough. It's easy enough to do, by just adding a boolean to PlanBase, but for two reasons I don't want to. First, if I put it in PlanBase, I can't reset source code without losing it. I could put it in a partial class for PlanBase, but PlanBase is not a partial class itself, which means after I reset the source code, I have to go in and redeclare it as a partial class. Second, the extra boolean would not be needed for other plans, only those that are to be activated once.