{
  "schemaVersion": 1,
  "status": "public-partner-portal-linked-backend-separate",
  "services": [
    {
      "id": "modport-directory",
      "name": "Creator-operated servers",
      "state": "directory",
      "owner": "Project creators",
      "capabilities": [
        "directory"
      ],
      "note": "Published server addresses from the existing moderated Modport catalog. Availability and player counts are not measured."
    },
    {
      "id": "partner-mashup",
      "name": "starting.cc multiplayer",
      "state": "linked",
      "owner": "starting.cc",
      "capabilities": [
        "portal",
        "launch",
        "setup"
      ],
      "site": "https://starting.cc/",
      "setup": "https://starting.cc/mw2",
      "serverBrowser": "https://starting.cc/#servers",
      "login": "https://starting.cc/login",
      "publicFeed": {
        "url": "https://starting.cc/api/servers",
        "state": "observed-not-connected",
        "crossOriginAccess": "No Access-Control-Allow-Origin observed for Modport on October 7, 2026"
      },
      "note": "Partner-operated MW2, Skate 3 and Minecraft mashup. Open its own server browser for current server reports. Accounts, downloads and game services stay with starting.cc."
    },
    {
      "id": "managed-hosting",
      "name": "Managed server hosting",
      "state": "pending",
      "owner": "Partner backend operator",
      "capabilities": [
        "hosting"
      ],
      "note": "Hosting inquiries only. No provisioning, payment collection or availability promise."
    }
  ],
  "ownership": {
    "frontend": "Modport multiplayer hub",
    "backend": "Partner-operated authenticated service",
    "existingCatalog": "Existing Modport API and moderation",
    "infrastructure": "No infrastructure provisioned by this batch"
  },
  "proposedGateway": {
    "path": "/api/multiplayer/v1",
    "implemented": false,
    "browserCredentials": "No provider tokens in browser assets",
    "directory": {
      "method": "GET",
      "path": "/servers",
      "response": {
        "schemaVersion": 1,
        "servers": [],
        "nextCursor": null
      },
      "serverFields": [
        "id",
        "serviceId",
        "gameId",
        "name",
        "region",
        "connectionAddress",
        "joinInstructionsUrl",
        "status",
        "players",
        "capacity",
        "observedAt"
      ],
      "statusValues": [
        "online",
        "offline",
        "unknown"
      ],
      "pagination": "Bounded pages, at most 100 records per page, opaque continuation cursor"
    },
    "hosting": {
      "state": "not-implemented",
      "requirements": [
        "Authenticated user and CSRF protection",
        "Explicit reviewed quote and owner acceptance",
        "Idempotent request IDs",
        "Operator authorization for lifecycle actions",
        "Quota and spending limits",
        "Cancellation and retention policy",
        "Audited server-side changes"
      ]
    }
  },
  "activationRequirements": [
    "Public partner identity and setup pages observed at starting.cc on October 7, 2026; confirm operational integration with its owner",
    "Agree exact API schema, endpoint ownership and status freshness",
    "Keep credentials and provisioning entirely server-side",
    "Allowlist partner origins and join links, never fetch arbitrary user-supplied URLs",
    "Confirm operator access, pricing, support, backups and abuse handling",
    "Review privacy, consent and account-linking before introducing partner data sharing",
    "Fresh build and publication approval, followed by owner-run acceptance"
  ],
  "privacy": "This draft hub reads only public directory metadata. Hosting form contents stay in the page until the visitor deliberately copies or shares them. Partner links are opened only by the visitor, with no referral query identifiers or credential forwarding. Partner privacy and account policies apply on its site."
}
