param(
    $Action,
    [hashtable] $Arguments
)

& {
    param($Parameters)
    . "$PSScriptRoot/../../Scripts/Restoration.ps1";
    . "$PSScriptRoot/../../../Common/Scripts/Software.ps1";
    . "$PSScriptRoot/../../../Common/Scripts/System.ps1";
    $path = "$HOME/Documents/ManiaPlanet";

    Start-SoftwareInstaller @Parameters `
        -Installer {
            Install-WingetPackage Nadeo.ManiaPlanet;
            Remove-DesktopIcon "ManiaPlanet*";
        } `
        -UserBackup {
            param(
                [hashtable] $Arguments
            )

            Add-BackupArtifacts -User $Arguments.Name -Source $path -Path "ManiaPlanet" `
                -Include @(
                    "Actions",
                    "Blocks",
                    "Items",
                    "Maps",
                    "Media",
                    "Modules",
                    "Packs",
                    "Replays",
                    "Scripts",
                    "Skins"
                );
        } `
        -UserConfigurator {
            param(
                [hashtable] $Arguments
            )

            Expand-BackupArtifacts -User $Arguments.Name -Path "ManiaPlanet" -Target $path;
        };
} $PSBoundParameters;