In addition to the things mentioned, at least two categories are missing in my opinion. The first one is "A oversteps time when B does not have enough mating material" and the second one is "A didn't arrive at the chessboard in time and B won".
Let's structure it a bit better so we make sure we don't miss anything. I have marked some of them with an asterisk to indicate that the cases exist but may well be handled by other categories.
Game scheduled to start.
(*) Game postponed. (If we have game in progress, we should have this one as well. Otherwise, put it under 1.)
Game finished without any moves played. This is important because whether a game will be rated or not depends on whether every player has played at least one move.
a) White arrived at the chessboard after default time. (
-:+, § 6.7)
b) Both players arrived at the chessboard after default time. (
Game in progress. (As mentioned in the other answer.)
(*) Game adjourned. (Appendix E. I think there are still events in the world where this happens, but none of these are actually serious enough to warrant this category. I guess FIDE will remove it over the course of the next ten years. However, it is possible on some internet servers (e. g. FICS), so don't put it too far away if you want to cater for that as well. If not, it should be 4.)
Game finished according to the Basic Rules of Play. (The "basic rules of play" are the first five articles of the Laws of Chess; the other articles are called "Competition rules".)
a) White wins by checkmate. (
1:0, § 5.1a)
b) Black resigns. (
1:0, § 5.1b)
c) (*) Game drawn by stalemate. (
½:½, § 5.2a) This is a special case of d), but, undoubtedly, it is a very special case and deserves its own category.
d) Game drawn by dead position. (
½:½, § 5.2b)
e) Game drawn by mutual agreement. (
½:½, § 5.2c)
Game finished by the clock.
a) (*) Black's flag falls during the n-th time control and the player has not completed the required number of moves. (§ 6.4 in conjunction with § 6.3a) You may merge a) and b), but then, unless you add time indicators, the two cases are indistinguishable. (
b) Black's flag falls during the last time control. (
c) (standard) Both flags have fallen and it is not clear which one fell first. (§ 6.11) (
½:½, § 6.11b)
d) (*) (standard) In the last time period, both flags have fallen but Black's flag fell first. (Can be put under a) or b)) (
e) (rapid and blitz) Both flags have fallen. (
½:½, Appendix A, § 4c)
f) White's flag falls, but Black has not enough mating material. Draw. Note that this is not necessarily 6d. (e. g. KB v KQ is always at least drawn for black). (You actually need this for a), b), and d) separately. See note below the list.) (
Game finished according to article nine of the laws of chess. (The drawn game.)
a) Drawn by claim of three-fold repetition by white. (
½:½, § 9.2b)
b) Drawn by claim of score-sheet written intention of three-fold repetition by white. (
½:½, § 9.2a)
c) (*) Drawn because X claimed draw by three-fold repetition and implicit draw offer was accepted by Y. Could be regarded as a normal draw offer. (
½:½, § 9.2 in conjunction with § 9.1.b.3)
d) Drawn by claim of 50 move rule by white. (
½:½, § 9.3b)
e) Drawn by claim of score-sheet written intention of 50 move rule by white. (
½:½, § 9.3a)
f) (*) Drawn because X claimed draw by 50 move rule and implicit draw offer was accepted by Y. Could be regarded as a normal draw offer. (
½:½, § 9.2 in conjunction with § 9.1.b.3)
g) Drawn by article 9.6a (the same position has appeared, as in 9.2b, for at least five consecutive alternate moves by each player, new rules!) (
h) Drawn by article 9.6b (any consecutive series of 75 moves have been completed by each player without the movement of any pawn and without any capture, new rules!) (
Game results in a quickplay finish. (appendix G, only in standard and rapidplay without increment) Maybe add an indicator where the increment time mode starts if appendix G4 is applied. In those two minutes, all other things mentioned here may well happen (checkmate, illegal moves, whatever).
a) Arbiter declares game drawn immediately. (
b) Arbiter awards extra two minutes and declares game drawn afterwards. (
d) (in games without the supervision of an arbiter) An external arbiter decides according to G6.
Game finished by decision of an arbiter because of a breach of rules of one player.
a) (standard games) Game lost because of two irregular moves by Black. (
1:0, § 7.5b).
b) (standard games) Like a), but White does not have enough winning material (
½:0, § 7.5b).
c) (*) (old rules, standard and rapidplay) Game lost because of three irregular moves by Black. (
1:0) (It is very unlikely these cases have been recorded for past tournaments.)
d) (*) (old rules, standard and rapidplay) Like c), but White does not have enough winning material. (
½:0) (It is very unlikely these cases have been recorded for past tournaments.)
e) (rapidplay and blitz) An incorrect move by Black is oberserved by the arbiter or correctly claimed by White. (
f) (rapidplay and blitz) Like e), but White does not have enough winning material. (
g) (blitz) The arbiter observes both kings being in check or an unfinished pawn promotion and the position is still on the board after one move. (
½:½, Appendix A, §4a.)
h) Black brings a mobile phone and/or other electronic means of communication in the playing venue (
1:0, note that White wins even with insufficient material!).
i) Game finished by decision of an arbiter because of misconduct by Black. (
1:0, § 12.9 decision)
Game finished by decision of an arbiter because both players persistently refuse to comply with the laws of chess. Note that both players lose in this case. (
0:0, Maybe this should be 10l))
(*) Game finished because of an irregularity at the start of the game. Now, I hope a game at a level worth recording will never be replayed according to § 7.2 (wrong initial placement of pieces). Additionally, semantically, there will still only be one game, so this should not be an end-of-game marker.
(*) Result to be decided.
(*) Game abandoned.
(*) Result unknown. (e. g. notation incomplete)
In the case of a team event, for example, you need two different results to represent the game properly: For example, here in Germany, if two players sit in the wrong places, one of the games will be declared lost even after the game has finished.
All the cases where this can happen are in a team context, though, so it should be possible to implement this in a different way. Recent development of electronic cheating means this is very much a possibility: the game where the player has been found to be cheating will certainly be declared lost for him. However, it might be decided that for the competition, all games will be declared lost, but they still count towards the rating (although even this is a corner case).
Yes, tournament chess can be complicated.