File format
My first concern with the tool was the file format. I really didn't want to parse yet-another-format at runtime, so as a pre-processing step I planned to convert the BMFont format into my game's standard format: protobuffers.message FontDef { optional FontInfo info = 1; optional FontCommonData common = 2; repeated FontTexture texture = 3; repeated FontCharInfo char_info = 4; }
Secondly, BMFont normally outputs one descriptor and multiple sprite-sheets. I wanted to pack all of those into my descriptor so I only have one thing to open in my resource-loader.
In either case, I was still starting with the BMFont output, for which I decided to build off the XML descriptor format from BMFont. The binary format isn't ideal to edit, so it's hard to double-check that everything exported correctly. The XML format is easy to read, and thus debug.