{
  "schema": "rusty.morphospace.public_distribution_catalog.v2",
  "default_product_channel": "stable",
  "authority": "owner-release-metadata-only",
  "fleet_pages_contract": {
    "composition": "preserve-complete-site-replace-owner-channel-subtree",
    "stable_metadata_path": "/Rusty-Fleet/metadata/stable/release.json",
    "labs_metadata_path": "/Rusty-Fleet/metadata/labs/release.json"
  },
  "products": [
    {
      "owner": "questionable-file-manager",
      "name": "QuestIonAble File Manager",
      "repository": "https://github.com/MesmerPrism/QuestIonAble-File-Manager",
      "complete_product": true,
      "feedback": {
        "issue_url": "https://github.com/MesmerPrism/QuestIonAble-File-Manager/issues/new?title=%5BLabs%20feedback%5D%20&body=Channel%3A%20labs%0AVersion%3A%20%3Cversion%3E%0ASource%20revision%3A%20%3C40-hex%20commit%3E%0AArtifact%20SHA-256%3A%20%3C64-hex%20digest%3E%0AOperating%20system%3A%20%3COS%20and%20version%3E%0ADevice%20class%3A%20%3Cclass%2C%20not%20serial%3E%0A%0ADo%20not%20include%20credentials%2C%20personal%20data%2C%20device%20serials%2C%20network%20addresses%2C%20pairing%20material%2C%20or%20private%20logs.",
        "required_fields": [
          "product_channel",
          "version",
          "source_revision",
          "artifact_sha256",
          "operating_system",
          "device_class"
        ],
        "privacy_warning": "Do not include credentials, personal data, device serials, network addresses, pairing material, or private logs."
      },
      "product_channels": [
        {
          "product_channel": "stable",
          "maturity": "released",
          "distribution_track": "github-release",
          "opt_in": false,
          "availability": "unpublished",
          "identity": {
            "platform": "windows",
            "installation_identity": "MesmerPrism.MetaQuestFileManager",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "stable"
          },
          "transition": "stable-default",
          "release": null
        },
        {
          "product_channel": "labs",
          "maturity": "alpha",
          "distribution_track": "github-prerelease",
          "opt_in": true,
          "availability": "published",
          "identity": {
            "platform": "windows",
            "installation_identity": "MesmerPrism.QuestIonAbleFileManager.Labs",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "separate-coinstallable"
          },
          "transition": "uninstall-labs-without-changing-stable",
          "release": {
            "tag": "v0.5.0-alpha.14",
            "version": "0.5.0-alpha.14",
            "source_revision": "f38f9d245d0669dff0d28d7de514ac38144b3a54",
            "artifact_name": "QuestIonAbleFileManager-Labs-Setup.exe",
            "artifact_url": "https://github.com/MesmerPrism/QuestIonAble-File-Manager/releases/download/v0.5.0-alpha.14/QuestIonAbleFileManager-Labs-Setup.exe",
            "artifact_sha256": "ee69b174be7aa316d9e705be9d62ffbd1b39a108345706f61d2a3063c92342e5",
            "bytes": 142798248,
            "installation_identity": "MesmerPrism.QuestIonAbleFileManager.Labs"
          }
        }
      ]
    },
    {
      "owner": "rusty-fleet",
      "name": "Rusty Fleet",
      "repository": "https://github.com/MesmerPrism/rusty-fleet",
      "complete_product": true,
      "feedback": {
        "issue_url": "https://github.com/MesmerPrism/rusty-fleet/issues/new?title=%5BLabs%20feedback%5D%20&body=Channel%3A%20labs%0AVersion%3A%20%3Cversion%3E%0ASource%20revision%3A%20%3C40-hex%20commit%3E%0AArtifact%20SHA-256%3A%20%3C64-hex%20digest%3E%0AOperating%20system%3A%20%3COS%20and%20version%3E%0ADevice%20class%3A%20%3Cclass%2C%20not%20serial%3E%0A%0ADo%20not%20include%20credentials%2C%20personal%20data%2C%20device%20serials%2C%20network%20addresses%2C%20pairing%20material%2C%20or%20private%20logs.",
        "required_fields": [
          "product_channel",
          "version",
          "source_revision",
          "artifact_sha256",
          "operating_system",
          "device_class"
        ],
        "privacy_warning": "Do not include credentials, personal data, device serials, network addresses, pairing material, or private logs."
      },
      "product_channels": [
        {
          "product_channel": "stable",
          "maturity": "released",
          "distribution_track": "github-release",
          "opt_in": false,
          "availability": "unpublished",
          "identity": {
            "platform": "windows",
            "installation_identity": null,
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "stable"
          },
          "transition": "stable-default",
          "release": null
        },
        {
          "product_channel": "labs",
          "maturity": "alpha",
          "distribution_track": "github-prerelease",
          "opt_in": true,
          "availability": "published",
          "identity": {
            "platform": "windows",
            "installation_identity": "rusty-fleet-labs",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "separate-coinstallable"
          },
          "transition": "uninstall-labs-without-changing-stable",
          "release": {
            "tag": "v0.1.0-alpha.8",
            "version": "0.1.0-alpha.8",
            "source_revision": "1078a92703dab80bf5af3da01f0c2082c4db8abd",
            "artifact_name": "RustyFleet-Labs-Setup.exe",
            "artifact_url": "https://github.com/MesmerPrism/rusty-fleet/releases/download/v0.1.0-alpha.8/RustyFleet-Labs-Setup.exe",
            "artifact_sha256": "79baf76b1de6163ff93c0274c35f8c1fca467b35b9eab9489a02cb6fb3fd4200",
            "bytes": 204481040,
            "installation_identity": "rusty-fleet-labs"
          }
        }
      ]
    },
    {
      "owner": "rusty-hostess",
      "name": "Rusty Hostess",
      "repository": "https://github.com/MesmerPrism/rusty-hostess",
      "complete_product": true,
      "distribution_notes": {
        "included": [
          "source-owned WPF companion",
          "source-owned CLI and tools",
          "Meta Cinematic Cast adapter source"
        ],
        "external": [
          "Meta Quest Developer Hub",
          "Casting.exe"
        ],
        "authority_exclusions": [
          "meta-software-redistribution",
          "presentation effectiveness",
          "recording",
          "input forwarding",
          "extended-FOV restoration",
          "device cleanup"
        ],
        "removal": "Uninstalling Rusty Hostess Labs removes only its separate Windows labs identity and does not change other products."
      },
      "feedback": {
        "issue_url": "https://github.com/MesmerPrism/rusty-hostess/issues/new?title=%5BLabs%20feedback%5D%20&body=Channel%3A%20labs%0AVersion%3A%20%3Cversion%3E%0ASource%20revision%3A%20%3C40-hex%20commit%3E%0AArtifact%20SHA-256%3A%20%3C64-hex%20digest%3E%0AOperating%20system%3A%20%3COS%20and%20version%3E%0ADevice%20class%3A%20%3Cclass%2C%20not%20serial%3E%0A%0ADo%20not%20include%20credentials%2C%20personal%20data%2C%20device%20serials%2C%20network%20addresses%2C%20pairing%20material%2C%20or%20private%20logs.",
        "required_fields": [
          "product_channel",
          "version",
          "source_revision",
          "artifact_sha256",
          "operating_system",
          "device_class"
        ],
        "privacy_warning": "Do not include credentials, personal data, device serials, network addresses, pairing material, or private logs."
      },
      "product_channels": [
        {
          "product_channel": "labs",
          "maturity": "alpha",
          "distribution_track": "github-prerelease",
          "opt_in": true,
          "availability": "published",
          "identity": {
            "platform": "windows",
            "installation_identity": "rusty-hostess-labs",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "labs-only"
          },
          "transition": "remove-labs-without-changing-other-products",
          "release": {
            "tag": "v0.1.0-alpha.7",
            "version": "0.1.0-alpha.7",
            "source_revision": "a6a62e6f9de2d8d03957cd59e786ddf96bc669e2",
            "artifact_name": "RustyHostess-Labs-0.1.0-win-x64.zip",
            "artifact_url": "https://github.com/MesmerPrism/rusty-hostess/releases/download/v0.1.0-alpha.7/RustyHostess-Labs-0.1.0-win-x64.zip",
            "artifact_sha256": "74e4cf5c5c912fb308b9b80a82080feed81a35753392a22375287234260a437a",
            "bytes": 71321800,
            "installation_identity": "rusty-hostess-labs"
          }
        }
      ]
    },
    {
      "owner": "rusty-kiosk",
      "name": "Rusty Kiosk",
      "repository": "https://github.com/MesmerPrism/Rusty-Kiosk",
      "complete_product": true,
      "feedback": {
        "issue_url": "https://github.com/MesmerPrism/Rusty-Kiosk/issues/new?title=%5BLabs%20feedback%5D%20&body=Channel%3A%20labs%0AVersion%3A%20%3Cversion%3E%0ASource%20revision%3A%20%3C40-hex%20commit%3E%0AArtifact%20SHA-256%3A%20%3C64-hex%20digest%3E%0AOperating%20system%3A%20%3COS%20and%20version%3E%0ADevice%20class%3A%20%3Cclass%2C%20not%20serial%3E%0A%0ADo%20not%20include%20credentials%2C%20personal%20data%2C%20device%20serials%2C%20network%20addresses%2C%20pairing%20material%2C%20or%20private%20logs.",
        "required_fields": [
          "product_channel",
          "version",
          "source_revision",
          "artifact_sha256",
          "operating_system",
          "device_class"
        ],
        "privacy_warning": "Do not include credentials, personal data, device serials, network addresses, pairing material, or private logs."
      },
      "product_channels": [
        {
          "product_channel": "stable",
          "maturity": "released",
          "distribution_track": "github-release",
          "opt_in": false,
          "availability": "unpublished",
          "identity": {
            "platform": "android",
            "installation_identity": "io.github.mesmerprism.rustykiosk",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "stable"
          },
          "transition": "stable-default",
          "release": null
        },
        {
          "product_channel": "labs",
          "maturity": "alpha",
          "distribution_track": "github-prerelease",
          "opt_in": true,
          "availability": "published",
          "identity": {
            "platform": "android",
            "installation_identity": "io.github.mesmerprism.rustykiosk.labs",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "separate-coinstallable"
          },
          "transition": "uninstall-labs-without-changing-stable",
          "release": {
            "tag": "v0.6.6-alpha.9",
            "version": "0.6.6-alpha.9",
            "source_revision": "be1321c9cf6c9c0d7e61d6920a815ab44166ea5a",
            "artifact_name": "rusty-kiosk.apk",
            "artifact_url": "https://github.com/MesmerPrism/Rusty-Kiosk/releases/download/v0.6.6-alpha.9/rusty-kiosk.apk",
            "artifact_sha256": "269bbc923407525acb954d164c21cc5f34e1a6d436dce2466d204ea68508a366",
            "bytes": 87275373,
            "installation_identity": "io.github.mesmerprism.rustykiosk.labs"
          }
        }
      ]
    },
    {
      "owner": "rusty-quest-package-updater",
      "name": "Rusty Quest Package Updater",
      "repository": "https://github.com/MesmerPrism/rusty-quest",
      "complete_product": true,
      "feedback": {
        "issue_url": "https://github.com/MesmerPrism/rusty-quest/issues/new?title=%5BPackage%20Updater%20labs%20feedback%5D%20&body=Channel%3A%20labs%0AVersion%3A%20%3Cversion%3E%0ASource%20revision%3A%20%3C40-hex%20commit%3E%0AArtifact%20SHA-256%3A%20%3C64-hex%20digest%3E%0AOperating%20system%3A%20%3COS%20and%20version%3E%0ADevice%20class%3A%20%3Cclass%2C%20not%20serial%3E%0A%0ADo%20not%20include%20credentials%2C%20personal%20data%2C%20device%20serials%2C%20network%20addresses%2C%20pairing%20material%2C%20or%20private%20logs.",
        "required_fields": [
          "product_channel",
          "version",
          "source_revision",
          "artifact_sha256",
          "operating_system",
          "device_class"
        ],
        "privacy_warning": "Do not include credentials, personal data, device serials, network addresses, pairing material, or private logs."
      },
      "product_channels": [
        {
          "product_channel": "labs",
          "maturity": "alpha",
          "distribution_track": "github-prerelease",
          "opt_in": true,
          "availability": "published",
          "identity": {
            "platform": "android",
            "installation_identity": "io.github.mesmerprism.rustyquest.packageupdater.labs",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "labs-only"
          },
          "transition": "remove-labs",
          "release": {
            "tag": "package-updater-v0.1.0-alpha.3",
            "version": "0.1.0-alpha.3",
            "source_revision": "8c1b84ddcce6d552cf5602d84208a4cd296df522",
            "artifact_name": "rusty-quest-package-updater.apk",
            "artifact_url": "https://github.com/MesmerPrism/rusty-quest/releases/download/package-updater-v0.1.0-alpha.3/rusty-quest-package-updater.apk",
            "artifact_sha256": "5489a75e0bcb939df2cf1232169b669dbbe16d2b7734033e41c3c677a6590bc0",
            "bytes": 864577,
            "installation_identity": "io.github.mesmerprism.rustyquest.packageupdater.labs"
          }
        }
      ]
    },
    {
      "owner": "rusty-connection-hub",
      "name": "Rusty Connection Hub",
      "repository": "https://github.com/MesmerPrism/rusty-quest",
      "complete_product": true,
      "distribution_notes": {
        "included": [
          "on-device connection and session hub",
          "paired controller admission",
          "explicit experimental trusted-LAN plaintext WebSocket control"
        ],
        "external": [
          "QuestIonAble File Manager Labs installation route",
          "Rusty Hostess Labs Windows control companion"
        ],
        "authority_exclusions": [
          "standalone guided installer",
          "transport confidentiality",
          "pairing-based encryption",
          "production eligibility",
          "arbitrary remote commands",
          "high-rate media data plane"
        ],
        "removal": "Uninstalling Rusty Connection Hub Labs removes only its labs-only Android package and does not remove its distinct companion products."
      },
      "security_notice": {
        "transport_classification": "trusted_lan_experimental",
        "confidentiality": "none",
        "production_eligible": false,
        "pairing_authenticates_but_does_not_encrypt": true,
        "listener_default": "stopped",
        "explicit_wearer_opt_in_required": true
      },
      "companion_routes": [
        {
          "owner": "questionable-file-manager",
          "product_channel": "labs",
          "purpose": "quest-installation",
          "relationship": "distinct-product"
        },
        {
          "owner": "rusty-hostess",
          "product_channel": "labs",
          "purpose": "windows-control-companion",
          "relationship": "distinct-product"
        }
      ],
      "feedback": {
        "issue_url": "https://github.com/MesmerPrism/rusty-quest/issues/new?title=%5BConnection%20Hub%20labs%20feedback%5D%20&body=Channel%3A%20labs%0AVersion%3A%20%3Cversion%3E%0ASource%20revision%3A%20%3C40-hex%20commit%3E%0AArtifact%20SHA-256%3A%20%3C64-hex%20digest%3E%0AOperating%20system%3A%20%3COS%20and%20version%3E%0ADevice%20class%3A%20%3Cclass%2C%20not%20serial%3E%0A%0ADo%20not%20include%20credentials%2C%20personal%20data%2C%20device%20serials%2C%20network%20addresses%2C%20pairing%20material%2C%20or%20private%20logs.",
        "required_fields": [
          "product_channel",
          "version",
          "source_revision",
          "artifact_sha256",
          "operating_system",
          "device_class"
        ],
        "privacy_warning": "Do not include credentials, personal data, device serials, network addresses, pairing material, or private logs."
      },
      "product_channels": [
        {
          "product_channel": "labs",
          "maturity": "alpha",
          "distribution_track": "github-prerelease",
          "opt_in": true,
          "availability": "published",
          "identity": {
            "platform": "android",
            "installation_identity": "io.github.mesmerprism.rustymanifold.broker",
            "identity_authority": "owner-release-metadata",
            "relationship_to_stable": "labs-only"
          },
          "transition": "remove-labs",
          "release": {
            "tag": "connection-hub-v0.1.0-alpha.4",
            "version": "0.1.0-alpha.4",
            "source_revision": "45de5da6cdf022de577b93c418031eb6e7b5c655",
            "artifact_name": "rusty-connection-hub-0.1.0-alpha.4.apk",
            "artifact_url": "https://github.com/MesmerPrism/rusty-quest/releases/download/connection-hub-v0.1.0-alpha.4/rusty-connection-hub-0.1.0-alpha.4.apk",
            "artifact_sha256": "dc4803a4ff6cb974628fdcaf0f9afc1710b6afe3d0b9efbdd4d0a33efddb4ebc",
            "bytes": 19723691,
            "installation_identity": "io.github.mesmerprism.rustymanifold.broker"
          }
        }
      ]
    }
  ]
}
