I'm developing an application (I'm finally getting around to working on Perspective again, for those who may remember me looking for testers a long time ago) and I have a question regarding plugin interfaces.

I plan on making a very extensible application and I'm curious what are some must have items in a plugin interface? I have severa basic events (Initialize, OnFocus, OnBlur, OnDispose, etc) and some basic properties like information about the plugin but what else is helpful with plugin development?

I'm basically having a couple of different types of plugins. The main will be able to draw onto two panels (one large one and a smaller one) with the abiliy to add menu items and some others that are more like small widgets.

Any direction or ideas would be helpful. All of this will be available in an SDK.