Damn lack of updates. Where was I?
Yes. Competitions, quite the annoyance. Structurally I don't see much of a problem, I can create a lot of different competitions and have the teams progress through them as they should. The main problem left before that moment where I can sleep happily is the system for having teams enter the competitions.
I've worked out that a competition will use any number of five different methods. Four of them are straightforward and present no problems, and allow for clubs to enter competitions based on various criteria, membership of a body or league, and even explicitly stated. These get defined in the competition's read-only structure data. The problematic one is Qualification.
Qualification presents two problems. The first is that it's not always straightforward and the World Cup is a perfect example of this. Because the hosts could come from anywhere in the world, the six qualification tournaments qualify differing numbers, otherwise you may be left with something like the North American tournament providing four qualifiers - and having a fifth playoff for another spot. That's a poor representation. Then of course if there are two hosts of the competition, things change further. Effectively, qualification must be dynamic and this presents a further problem.
If qualification is dynamic, then so must competitions. Europe can provide 14 entrants to the World Cup. If they play in 8 groups (as they have just done in 2006 qualifying) then those 14 would be provided by qualifying the group winners, the best four runner up sides, and letting the remaining four playoff to produce the final two. That works. If the hosts are European (as Germany are) then you've got 13 spots, so the competition must change - 8 group winners, two runner up sides and have the other six play off for the remaining three.
Ideally, I'll have the game do this automatically, thus saving memory. The other solution is to store different formats for different numbers of qualifiers, which can use up memory.
Further problems appear when dealing with things such as continental qualification and whatnot, so that's the big headache at the moment. I have faith though.