MTG Forge is made up of a million little bits of code. Magic has a huge number of details and you have to tackle each one without being overwhelmed. How will the user interface show damage and assigned combat damage? How will decks be stored, plain text or some other format? How will players assign combat damage to multiple blockers? How do you make a decent deck editor? Which dialog boxes are required during a typical game of Magic? (Dialog boxes are those things that pop up and say, "Are you sure you want to quit?")
Obviously Magic is very big so you have break it down into very small parts in order to translate it into specific steps that you can code. MTG Forge currently requires mana costs to have a space, such as "1 G G" and "W W". I made this decision because it was easier to decode the mana cost since it was already broken into pieces. Having the computer decode "1 G G" is easier than "1GG".
Requiring all mana costs to have spaces isn't a very big decision but it is a decision that affects the whole project. I could have spent a little more time on the code so the computer could decode "1GG" but I made a decision and stuck with it.
If you want a small programming challenge write your own method to convert "1GG" into "1 G G". Other good test cases include "G", "GG", "10" and "10GGG". You can compare your code to mine on Wednesday.