The problem is reverse engineering everything so that it works, without forgetting or omitting anything. Hell, if someone was to supply a verbose list of packet commands and parametres FL and the server use to communicate and what they expect back on each command, anyone could go start the project there and then...
So I am more inclined to support option number 2. It might take longer, but it will be worth it.