With the new version of Visual Studio bringing C# 12, we can revise our logic for better readability as well as use new methods/APIs introduced in the .NET 8.0 BCL.
Inline logic for Meowstic form branch evo
Pass levelup byte value directly instead of recompute
With EvolutionSet all shared, reorder the constructor so the primary ctor doesn't need manually ordered properties (8 byte total struct size)
Reformat all pickles to the same serialization format (latest)
(format ignores all empty evo entries, to skip allocation of dead entries)
346KB -> 60.3KB, -200 lines of code
EvolutionSet was just an object that hides an array, with no logic
was planning to use the EvolutionSet to do the evolution checks, but
EvolutionTree was required to connect the evolution chains together
Too many classes in the same file, break up.
simplify things a little in EncounterArea (remove passing thru nulls,
should throw excpetion immediately if misconfigured).