[
    {
        "UpdateStageName": "Allowlist.json Backup",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}allowlist.json.bak",
        "UpdateSourceArgs": "{{$FullBaseDir}}allowlist.json",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "Permissions.json Backup",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}permissions.json.bak",
        "UpdateSourceArgs": "{{$FullBaseDir}}permissions.json",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "FetchURLFromJQ",
        "UpdateSourceData": "https://net-secondary.web.minecraft-services.net/api/v1.0/download/links",
        "UpdateSourceArgs": "$.result.links[0].downloadUrl",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "release-latest",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "FetchURLFromJQ",
        "UpdateSourceData": "https://net-secondary.web.minecraft-services.net/api/v1.0/download/links",
        "UpdateSourceArgs": "$.result.links[1].downloadUrl",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "release-latest",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "FetchURLFromJQ",
        "UpdateSourceData": "https://net-secondary.web.minecraft-services.net/api/v1.0/download/links",
        "UpdateSourceArgs": "$.result.links[2].downloadUrl",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "preview-latest",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "FetchURLFromJQ",
        "UpdateSourceData": "https://net-secondary.web.minecraft-services.net/api/v1.0/download/links",
        "UpdateSourceArgs": "$.result.links[3].downloadUrl",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "preview-latest",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://www.minecraft.net/bedrockdedicatedserver/bin-win/bedrock-server-{{SpecificServerVersion}}.zip",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "release-specificversion",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-{{SpecificServerVersion}}.zip",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "release-specificversion"
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://www.minecraft.net/bedrockdedicatedserver/bin-win-preview/bedrock-server-{{SpecificServerVersion}}.zip",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "preview-specificversion",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Server Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://www.minecraft.net/bedrockdedicatedserver/bin-linux-preview/bedrock-server-{{SpecificServerVersion}}.zip",
        "UpdateSourceTarget": "{{$FullBaseDir}}",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true,
        "UpdateSourceConditionSetting": "ServerStream",
        "UpdateSourceConditionValue": "preview-specificversion",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Make Server Executable",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "SetExecutableFlag",
        "UpdateSourceArgs": "{{$FullBaseDir}}bedrock_server",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Allowlist.json Restore",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}allowlist.json",
        "UpdateSourceArgs": "{{$FullBaseDir}}allowlist.json.bak",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "Permissions.json Restore",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}permissions.json",
        "UpdateSourceArgs": "{{$FullBaseDir}}permissions.json.bak",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    }
]