Let's just agree on what the program is going to do exactly, before starting writing code.
Alright, let's start with simple questions.
1) Is the program
A) to generate a stub build that meets all the requirements listed, or
B) to be a full-blown character generator?
I don't want to be a party-pooper, but I vote for (A), stub builds only. The full-blown char-gen smacks of major project creep. Maybe for version 10.0, but there's plenty of work to do for the stub builder to keep us busy for some time to come. I'll also quote the opening line from this thread
Main idea: Make an application that can generate every possible combination of classes that fulfill certain requirements.
2) Are we limiting to D&D only, or for all d20 games (eg Star Wars, d20 Modern)
I say D&D only. Project creep, project creep, project creep. (My new favorite words
). However, people will be allowed to add homebrew stuff, so if they can work another game in there, more power to 'em.
3) version 3.5 only, or include 3.0? What about Pathfinder?
Project creep. Just kidding. Since there's no clear cut-off between 3.0 and 3.5, we should do both. I don't know enough about Pathfinder to render an opinion on that.
4) If a class is reprinted (eg, I think Court Herald is both in a Dragon Magazine and a sourcebook), which version do we use?
I say use them both, and treat them as 2 different classes. Chance are, if the program can handle one, it will only need minor tweaks (if any) to handle both. And some people will have one source, but not the other. And some people will prefer one over the other (I had a player who wanted to use the 3.0 version of Blood Magus, but not the 3.5 version).
An option in the program could say to only use the most recent version.