{
  "commands": [
    "play",
    "host",
    "proxy",
    "qtv",
    "status",
    "hub",
    "update",
    "upgrade",
    "verify",
    "doctor",
    "ui",
    "profile",
    "library",
    "changes",
    "migrate",
    "repair",
    "cleanup",
    "uninstall",
    "version"
  ],
  "component_count": 21,
  "external_public": false,
  "format": 1,
  "games": [
    {
      "client_runtimes": [
        "ezquake-stable",
        "ezquake-nightly"
      ],
      "component": "ktx",
      "id": "ktx",
      "label": "KTX",
      "protocol": "quakeworld",
      "server_runtimes": [
        "mvdsv"
      ],
      "smoke_test": "ktx-modes-and-frogbots",
      "version": "1.47"
    },
    {
      "client_runtimes": [
        "ezquake-stable",
        "ezquake-nightly"
      ],
      "component": "final-arena",
      "id": "final-arena",
      "label": "Final Arena",
      "protocol": "quakeworld",
      "server_runtimes": [
        "mvdsv"
      ],
      "smoke_test": "final-arena-local-and-dedicated",
      "version": "1.20"
    },
    {
      "client_runtimes": [
        "ezquake-stable",
        "ezquake-nightly"
      ],
      "component": "pro-x",
      "id": "pro-x",
      "label": "Pro-X",
      "protocol": "quakeworld",
      "server_runtimes": [
        "mvdsv"
      ],
      "smoke_test": "pro-x-local-and-dedicated",
      "version": "1.1"
    },
    {
      "client_runtimes": [
        "ezquake-stable",
        "ezquake-nightly"
      ],
      "component": "team-fortress",
      "id": "team-fortress",
      "label": "Team Fortress",
      "protocol": "quakeworld",
      "server_runtimes": [
        "mvdsv"
      ],
      "smoke_test": "team-fortress-local-and-dedicated",
      "version": "2.9"
    },
    {
      "client_runtimes": [
        "ezquake-stable",
        "ezquake-nightly"
      ],
      "component": "total-destruction-2",
      "id": "td2",
      "label": "Total Destruction 2",
      "protocol": "quakeworld",
      "server_runtimes": [
        "mvdsv"
      ],
      "smoke_test": "td2-local-and-dedicated",
      "version": "2.22"
    }
  ],
  "installer": {
    "distribution_path": "installer/packages/1.0.4/x86qw-installer-1.0.4.zip",
    "filename": "x86qw-installer-1.0.4.zip",
    "sha256": "24a3115db79a60601d4afd48da1ecb06a8ec5a4593f485450b3bd34cc2492011",
    "size": 617049,
    "urls": [
      "https://github.com/x86dx2/x86qw/releases/download/x86qw-installer-1.0.4/x86qw-installer-1.0.4.zip",
      "https://gitlab.com/api/v4/projects/84813414/packages/generic/x86qw-installer/1.0.4/x86qw-installer-1.0.4.zip"
    ]
  },
  "package_count": 78,
  "project": "x86qw",
  "release_audience": "owner-only",
  "release_truth_url": "/api/v1/release-truth.json",
  "runtimes": [
    {
      "capabilities": [
        "multiplayer-client",
        "local-server",
        "bots",
        "demo-playback",
        "server-browser"
      ],
      "component": "ezquake",
      "id": "ezquake-stable",
      "kind": "client",
      "label": "ezQuake Stable",
      "platforms": [
        {
          "architecture": "universal",
          "format": "macho-universal",
          "origin": "official",
          "support": "conditional",
          "support_targets": [
            {
              "support": "conditional",
              "validation": "portable-contract",
              "variant": "macos-arm64"
            },
            {
              "support": "preview",
              "validation": "portable-contract",
              "variant": "macos-x64"
            }
          ],
          "system": "macos",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "macos-universal"
        },
        {
          "architecture": "x86_64",
          "format": "elf-amd64",
          "origin": "official",
          "support": "preview",
          "system": "linux",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "linux-x86_64"
        },
        {
          "architecture": "x64",
          "format": "pe-x64",
          "origin": "official",
          "support": "preview",
          "system": "windows",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "windows-x64"
        }
      ],
      "protocols": [
        "quakeworld"
      ]
    },
    {
      "capabilities": [
        "multiplayer-client",
        "local-server",
        "bots",
        "demo-playback",
        "server-browser"
      ],
      "component": "ezquake",
      "id": "ezquake-nightly",
      "kind": "client",
      "label": "ezQuake Nightly",
      "platforms": [
        {
          "architecture": "universal",
          "format": "macho-universal",
          "origin": "official",
          "support": "preview",
          "support_targets": [
            {
              "support": "preview",
              "validation": "portable-contract",
              "variant": "macos-arm64"
            },
            {
              "support": "preview",
              "validation": "portable-contract",
              "variant": "macos-x64"
            }
          ],
          "system": "macos",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "macos-universal"
        },
        {
          "architecture": "x86_64",
          "format": "elf-amd64",
          "origin": "official",
          "support": "preview",
          "system": "linux",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "linux-x86_64"
        },
        {
          "architecture": "x64",
          "format": "pe-x64",
          "origin": "official",
          "support": "preview",
          "system": "windows",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "windows-x64"
        }
      ],
      "protocols": [
        "quakeworld"
      ]
    },
    {
      "capabilities": [
        "dedicated-server",
        "bots",
        "mvd-recording"
      ],
      "component": "mvdsv",
      "id": "mvdsv",
      "kind": "server",
      "label": "MVDSV",
      "platforms": [
        {
          "architecture": "arm64",
          "format": "macho-arm64",
          "origin": "x86qw-build",
          "support": "preview",
          "system": "macos",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "macos-arm64"
        },
        {
          "architecture": "amd64",
          "format": "elf-amd64",
          "origin": "official",
          "support": "preview",
          "system": "linux",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "linux-amd64"
        },
        {
          "architecture": "x64",
          "format": "pe-x64",
          "origin": "official",
          "support": "preview",
          "system": "windows",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "windows-x64"
        }
      ],
      "protocols": [
        "quakeworld"
      ]
    },
    {
      "capabilities": [
        "qtv",
        "demo-playback"
      ],
      "component": "qtv",
      "id": "qtv",
      "kind": "service",
      "label": "QTV",
      "platforms": [
        {
          "architecture": "arm64",
          "format": "macho-arm64",
          "origin": "x86qw-build",
          "support": "preview",
          "system": "macos",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "macos-arm64"
        },
        {
          "architecture": "amd64",
          "format": "elf-amd64",
          "origin": "x86qw-build",
          "support": "preview",
          "system": "linux",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "linux-amd64"
        },
        {
          "architecture": "x64",
          "format": "pe-x64",
          "origin": "x86qw-build",
          "support": "preview",
          "system": "windows",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "windows-x64"
        }
      ],
      "protocols": [
        "quakeworld",
        "http"
      ]
    },
    {
      "capabilities": [
        "proxy"
      ],
      "component": "qwfwd",
      "id": "qwfwd",
      "kind": "service",
      "label": "QWFWD",
      "platforms": [
        {
          "architecture": "arm64",
          "format": "macho-arm64",
          "origin": "x86qw-build",
          "support": "preview",
          "system": "macos",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "macos-arm64"
        },
        {
          "architecture": "amd64",
          "format": "elf-amd64",
          "origin": "official",
          "support": "preview",
          "system": "linux",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "linux-amd64"
        },
        {
          "architecture": "x64",
          "format": "pe-x64",
          "origin": "official",
          "support": "preview",
          "system": "windows",
          "test_required": true,
          "validation": "portable-contract",
          "variant": "windows-x64"
        }
      ],
      "protocols": [
        "udp-proxy"
      ]
    }
  ],
  "version": "1.0.4"
}
