Now reading descr_names.txt, text/names.txt.
Reading Scripts are now done as part of reading all game files, instead of as processing code for some bits, and pulled into own reader class.
Expanded reading of script to include name and label references. Label references are yet to be checked.
Split TraitsAncillariesScript into TraitsAncillaries and Script. Script processing is now in Kotlin.
ScriptReader's loadScript method was way too long. Now split into parts: findTraitReferences, findCounterReferences, findBuildingReferences, findUnitReferences and the new findNamesAndLabels. Small bits remain in the overall method.
Storage of data read in code files moved from processing class to data class.
Date for historic event counters were forgotten to be checked in some tests. They are now stored as a SET LOCATION like any other place they get set rather than as a special attribute. Fixed historic event references in descr_events.txt always being stored as new event counters, now they correctly get stored with other references to the same event if they have already been encountered elsewhere.
Declared counters' usage is now tracked in the same way as event counters. Tests on them considerably rewritten.
Plugins for buildings in descr_strat.txt are now parsed. They are further ignored for now, a check should be made at some point to ensure these plugins and levels exist.
Export_descr_advice now read as part of reading all game files, instead of a preparation step before running tests on code. Advice threads tracking now matches most other references.
Reading of EDA pulled from processing class to reader class. Ancillary descriptions moved here from TraitReader.
Usage of event counters in EDA is now recognized.
A few minor classes converted to Kotlin.
Added checks:
Lookup files are not present.
All music files are in use.
Factions use each given name only once for each name type.
All name codes have a display name defined for all translations.
All display names for all translations are in use in at least one faction.