In general, I will release a set of .NET libraries that cover three general APIs for working with tio:
1. an object model, representing the data needed to express a tournament and the relationships between its elements (a Tournament contains a collection of TournamentEvents, each of which is a collection of Entrants and a Bracket, which itself is a collection of BracketMatch objects arranged in some internal specification, etc...);
2. a set of UI controls and interfaces for interacting with and extending the user interface of the program;
3. a set of defined code points to hook into the application and get your plugin loaded.
For the example of adding character images to the bracket, this is (roughly) what I did:
1. Created an object model for representing a set of characters belonging to a certain game type, along with data (xml and images) for storing that information in an extensible way.
2. Added a custom property to the Entrant class so I can store my Characters objects inside each Entrant.
3. Created a class that draws character images and informed the DoubleEliminationBracket type that I would like the chance to render my icons when a bracket is drawn.
4. Hooked into a few API points so the user can edit my Character property when adding or editing a player/entrant.
Other plugins that I made on the side to test & extend the APIs:
- add a System field to entrants so you can track whether they prefer to play on PS3 or Xbox (a friend was running Street Fighter IV on PS3 and 360 at the same time, and wanted to see on a bracket which system each player had a controller for).
- a few new bracket types like elimination pools (aka Evo Pools), ladder elimination, or MLG's Open/Championship bracket system for SC2 tournaments.
- All is Brawl's Tournament Upload/Verification system uses a tio plugin to gather information about a tournament's object model and then serialize that to a web service.
- a custom plugin for the NVGA to synchronize player lists with their online database to support organization-wide seeding and rankings. At some point a Melee player asked about doing the same for Melee rankings but I dunno what happened with that.
- other random stuff.
So yeah. Exciting stuff, with really endless possibilities.
I will put together what documentation I can, but at least in the beginning, "support" will likely be in the form of forum posts and emails.