FSO Interface transforms FreeSO's public APIs into interfaces so varies components can be swapped without changing the underlining architecture.
Due to a strict null-safety policy, some breaking changes had to be made.
- FSO Interface is based on .NET 6 or later.
- Many models have been turned into records.
- Arrays and lists have been turned into
IEnumerablewhileKeyValuePairs<>has been replaced withIDictionary<>unless the original API mandates a method from a specified type.
VMSerializable is actually an interface, despite lacking the I prefix, and is used all across the game's virtual machine. FSO Interface naturally incorporates this into its library but has split the interface into two, IVMSerializable and IVMDeserializable, providing Read and R/W functionalities, respectfully. The IVMDeserializable interface is used within methods that would normally require VMSerializable.
I license this project under the MPL-v2.0 license - see LICENSE for details.