Looking inside the file is quite funny, and interesting to me as well. This is for instance my first test project:
{“alias”:“Dutch”,“flag_palette”:[6,1,5,6,7,4,0,0],“tree”:[[13,17,21,74,545,539,331,125,83,128,440,441,546,448,283,38,36,359,358,93,473,77,75,5,6,7,24,4,550,280,422,1258,542,279,691,420,442,532,529,1103,527,1104],[12,45,49,50,68,70,72,79,82,84,87,101,103,104,109,199,209,276,562,584,598,621,792,155,117,487,236,235,234],[22,101,102,103,408,435,39,47,716,215,437,200,199,212,211,75,68,67,80,82,81,77,76,74,219,375,374,373,65,50,194,93,377,64,63,140,380,322,54,608,315,379,45,439,319,230,316,280,8,249,213,221,203,202,17,23,15,48,278,55,279,12,13,14]],“bonuses”:[[72,104,122,108,94],[20],[36],[16],[36]],“architecture”:2}
That’s it, that’s the whole civ. The most interesting thing this tells me is that it would be far from trivial to release a version of this that allows for custom bonuses, like say + or - X attack/movement speed/resource Y cost/etc for unit Z. That’s because the workings of the bonuses are not stored inside the civilization file. This file can only tell the program to read out bonus number N from whichever file has all the bonuses stored. So this script is really about as complete as the civ design process gets without making things significantly more complex.
The exception would be civ design for custom scenario’s, as you can make quite a few extra changes as part of the scenario trigger system.