Development two is more or less just a vague thought. Since the main goal here is correspondence chess, and nothing terribly intensive, efficiency probably isn't the highest priority. Some sense of modularity could be achieved, at the expense of efficiency, by writing the FEN handler in C (or whatever) and leaving the rest of the task to builtins and shell scripting. So, our FEN tool would only really need to be capable of a few things - parsing FEN, turning FEN into a human-readable representation of a board, parsing movetext in algebraic notation, and applying said movetext to FEN.
The FEN tool could then be useful for other things as well:
- Just displaying a board, given FEN
- Just manipulating FEN (FEN and movetext in, FEN out), without display
- Generating FEN from nothing (normal game start, 960)