naftiko: "1.0.0-alpha2" info: label: "Fortnite Tracker API — Profile" description: >- Profile — Per-player Fortnite lifetime and per-mode statistics. 2 operations. Lead operation: Fortnite Tracker Get Player Profile. Self-contained Naftiko capability covering one Fortnite Tracker business surface. tags: - Fortnite Tracker - Player Statistics - Profile created: "2026-05-30" modified: "2026-05-30" binds: - namespace: env keys: TRN_API_KEY: TRN_API_KEY capability: # ── 1. Consumes — the upstream HTTP API this capability speaks to ───── consumes: - type: http namespace: "fortnite-tracker-profile" baseUri: "https://api.fortnitetracker.com/v1" description: "Fortnite Tracker API — Profile business capability. Self-contained, no shared references." authentication: type: apikey key: TRN-Api-Key value: "{{env.TRN_API_KEY}}" placement: header resources: - name: "profile-platform-epic-nickname" path: "/profile/{platform}/{epicNickname}" operations: - name: "getProfile" method: GET description: "Retrieve a player's Fortnite profile with lifetime and per-mode statistics." inputParameters: - name: "platform" in: path type: string required: true description: "Player platform (pc, xbl, psn)." - name: "epicNickname" in: path type: string required: true description: "Epic Games display name for the player." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "profile-account-account-id" path: "/profile/account/{accountId}" operations: - name: "getProfileByAccountId" method: GET description: "Retrieve a player's Fortnite profile by Epic Games account UUID." inputParameters: - name: "accountId" in: path type: string required: true description: "Epic Games account UUID." outputRawFormat: json outputParameters: - name: result type: object value: "$." # ── 2. REST exposer — required default. ── exposes: - type: rest namespace: "fortnite-tracker-profile-rest" port: 8080 description: "REST adapter for Fortnite Tracker API — Profile. One Spectral-compliant resource per consumed operation, prefixed with /v1." resources: - path: "/v1/profile/{platform}/{epic-nickname}" name: "player-profile" description: "REST surface for player profile by platform and display name." operations: - method: GET name: "getProfile" description: "Retrieve a player's Fortnite profile." call: "fortnite-tracker-profile.getProfile" with: "platform": "rest.platform" "epicNickname": "rest.epic-nickname" outputParameters: - type: object mapping: "$." - path: "/v1/profile/account/{account-id}" name: "player-profile-by-account" description: "REST surface for player profile by Epic account UUID." operations: - method: GET name: "getProfileByAccountId" description: "Retrieve a player's Fortnite profile by account UUID." call: "fortnite-tracker-profile.getProfileByAccountId" with: "accountId": "rest.account-id" outputParameters: - type: object mapping: "$." # ── 3. MCP exposer — required default. ── - type: mcp namespace: "fortnite-tracker-profile-mcp" port: 9090 transport: http description: "MCP adapter for Fortnite Tracker API — Profile. One tool per consumed operation." tools: - name: "get-player-profile" description: "Retrieve a player's Fortnite profile with lifetime and per-mode statistics." hints: readOnly: true destructive: false idempotent: true call: "fortnite-tracker-profile.getProfile" with: "platform": "tools.platform" "epicNickname": "tools.epicNickname" outputParameters: - type: object mapping: "$." - name: "get-player-profile-by-account-id" description: "Retrieve a player's Fortnite profile by Epic Games account UUID." hints: readOnly: true destructive: false idempotent: true call: "fortnite-tracker-profile.getProfileByAccountId" with: "accountId": "tools.accountId" outputParameters: - type: object mapping: "$."