When writing models, I had issues finding WHERE the missing Properties where actually missing (in what node, not what type), so I improved the message in the relevant Exception.
I had a race condition when parsing multiple gamedata files in parallel, they tried adding identical Dictionary entries in the RenamedPropertyHelper Cache simultaneously. I changed that dictionary to a ConcurrentDictionary to prevent that issue.
When writing models, I had issues finding WHERE the missing Properties where actually missing (in what node, not what type), so I improved the message in the relevant Exception.
I had a race condition when parsing multiple gamedata files in parallel, they tried adding identical Dictionary entries in the RenamedPropertyHelper Cache simultaneously. I changed that dictionary to a ConcurrentDictionary to prevent that issue.