This abandons use of the hash table in favor of just iterating over each of the symbol records and dumping their full contents. So now instead of just the symbol names, we dump full record details of symbols in the publics stream.
The layout is the same but the field names are different. In the future I have some ideas how to reduce this code duplication, but for now it is needed. If you look at SymbolRecord.h you will see there is already quite a bit of it.