This page describes one way of implementing the network multiplayer in a few small steps, that would allow us to release various minor version with improved (network) functionality. It avoids the problem that it might otherwise be a long time before the network version can be released, giving players a constant view of what we are doing. On the other hand, it does not mean that we have to implement things in this order.
Voting for Addons
A first step would be to allow voting for addons. For this people have to login to a server (for which we can use the current addon server, esp. share the accounts between the web page and STK). A login is required in order to avoid that people vote for an addon more than once (on the other hand people might still create more than one user id).
The next step would be online highscores. For this to work it is necessary that people upload replays of their races (so that other people can verify that no tweaked physics settings were used). This step should allow people to create groups/friends, and we can add notifications if someone on the friend gets a new high score (or beats your own score).
I am not sure if this is really useful, but might be a nice in-between steps before implementing full races: People can race against other people, but all other karts are only ghosts, i.e. no interaction with those other karts. This would simplify implementation since no items, projectiles would need to be considered.
Players should be able to create groups, one of them 'opens a room', and invites other people to join. This would need to implement the GUI in a distributed way.
Full WAN Races
This adds the interaction between karts, items, ... to the ghost race.