PowerShell scripts now execute correctly with the client. The built in PowerShell API's serializer will always return null on .NET 8 for some reason. The serializer/deserializer was switched to YAML, mostly due to convenience of already having a package for it.
Added a new settings for enabling script debugging mode. This ensures that when a script is executed, the PowerShell terminal window is not closed. This allows power users to get the same environment that the script executes in. It also allows for some scroll back to see what potentially went wrong in their script.
Reduced the amount of data being sent to the client from the API which results in smaller, somewhat faster requests. In a library of ~250 games the requests went from 5.6MB to 3.3MB.
Games now import using the Game type instead of manifest. The manifest is fine for locally caching the game (though who knows, this could change as well), but for providing complex information like dependent games versioning it just doesn't have enough data.
Importing has been changed to provide the "Update Available" title change on games where the main game or mod/expansion has a new version available.
Notes now get populated on import, not just install.
Reworked population of game menu items to include non-primary actions from mods/expansions.
Simplified and fixed certain scripts not running for mods/expansions.
Instead of providing metadata and possibly updating a game if it already exists, this gives us full control over how games are imported into the library. This update will allow all changes to games made in the server to be synced to the clients. It also simplifies the import, though it is more prone to exceptions due to the current use of yield.
This changes the downloading mechanism for saves so only saves that have been uploaded since the last time the game was run get downloaded to the client.