{
  "$schema": "https://pointcast.xyz/for-agents",
  "generatedAt": "2026-06-11T15:55:08.998Z",
  "name": "Nouns Nation Battler",
  "status": "playable browser prototype v42 agent ops ledger, federation sprint room pocket desk, fast pass, sponsorship desk, production desk, public claim board, agent sideline desk, and asset factory",
  "human": "https://pointcast.xyz/nouns-nation-battler/",
  "nationHub": "https://pointcast.xyz/nouns-nation/",
  "playable": "https://pointcast.xyz/games/nouns-nation-battler/",
  "sportsReenactment": "https://pointcast.xyz/nouns-nation-sports-reenactment/",
  "unionLeague": "https://pointcast.xyz/nouns-nation-union/",
  "unionArtifactStudio": "https://pointcast.xyz/nouns-nation-union/artifacts/",
  "unionLeagueJson": "https://pointcast.xyz/nouns-nation-union.json",
  "mobile": "https://pointcast.xyz/nouns-nation-battler-mobile/",
  "tv": "https://pointcast.xyz/nouns-nation-battler-tv/",
  "wikiHuman": "https://pointcast.xyz/nouns-nation-battler-wiki/",
  "wikiJson": "https://pointcast.xyz/nouns-nation-battler-wiki.json",
  "image": "https://pointcast.xyz/images/og/nouns-battler-live.png",
  "intent": "A watchable Nouns auto-battler where numbered Nouns players and eight rotating gangs play a two-week 30 vs 30 league into a Nouns Bowl final, with a PointCast Battle Desk hub, phone-first Mobile Cast, Battle Desk V3 federation operating room, a Season 6 Agent Ops ledger for public claim/report/handoff work, a Season 6 Pocket Desk for phone-first live/claim/audit/handoff moves, a Season 6 Sprint Room Fast Pass for copyable claim/share/audit handoffs, expansion combine, media week, rights inventory, rival-league scouting, and proof artifacts, snapshot-backed Desk Wall watch frames, a Results Desk MCP that turns Desk Wall snapshots and Recap Studio text into a Claude/Cowork scorebook, an MCP-readable Wiki for field-guide briefs, an Agent Bench for Claude/ChatGPT/Codex task handoffs, a Sideline Desk for claim/report workflows, an agent asset factory for posters, ads, art prompts, products, and sponsor reads, a Sponsorship Desk for reservation-only sponsor cards, featured Nouns, first-four-season highlights, TV tickers, agent task briefs, proof requirements, and participant-credit routing, a v38 Production Desk for accepted-work ledger cards, broadcast director queues, rooting cards, season archive cards, and Nouns Bowl hype week, a v39 public Claim Board for sponsor reservations, agent bounties, poster/product drops, QA audits, watch-party proof, broadcast run sheets, and Nouns Bowl hype cards, a prototype participant rewards model, a claim queue of timeboxed agent tasks, MCP tools for Battler wiki, tasks, and manifests, opt-in anonymous agent presence, a Watch Now rail, league-integrity score coverage, canonical shareable report card links, an in-session Report Gallery, downloadable Season Report cards, printable Season Reports, portable Season Desk Wall snapshot links, copyable Commissioner Desk interstitials and archive, a TV Bowl Countdown card, rivalry heat, head-to-head records, late-season boss field mutations, a rookie Watch Guide, live storyline engine, Watch Party Kit, Recap Studio, Season 2 scope board, scout cards, sim controls, rotating season challenges, Director Mode TV, Noun-heavy overview interstitials, Amplifier Rift, Crown Rush, weird terrain battle types, a 20-poster type-heavy Nouns series, unique Noun-heavy unfurls for every public Battler surface, GTM strategy, and recaps.",
  "broadcastDesk": {
    "name": "PointCast Battle Desk",
    "human": "https://pointcast.xyz/nouns-nation-battler/",
    "format": "sports-desk style live hub with scorebug, league standings, top Nouns, root line, match queue, live calls, Mobile Cast, TV cast, desk wall, snapshot-backed watch frames, agent bench task links, Sideline Desk report/asset links, Sponsorship Desk reservation links, Production Desk ledger links, Claim Board task links, poster links, and embedded v39 field feed",
    "embeddedFeed": "https://pointcast.xyz/games/nouns-nation-battler/",
    "watchNext": [
      {
        "id": "live-desk",
        "label": "Start Watching",
        "title": "Live Battle Desk",
        "href": "https://pointcast.xyz/nouns-nation-battler/",
        "noun": 12,
        "useFor": "The default sports desk: scorebug, field feed, calls, table, top Nouns, and controls.",
        "agentPrompt": "Use this when a viewer asks what is happening right now."
      },
      {
        "id": "mobile-cast",
        "label": "Phone First",
        "title": "Mobile Cast",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
        "noun": 34,
        "useFor": "One-handed match viewing, fast sharing, lunch-line review, and quick sanity checks.",
        "agentPrompt": "Use this when a viewer is on a phone or needs the least-friction watch route."
      },
      {
        "id": "tv-cast",
        "label": "Big Screen",
        "title": "TV Cast",
        "href": "https://pointcast.xyz/nouns-nation-battler-tv/",
        "noun": 58,
        "useFor": "Fullscreen broadcast mode for watch parties, office TVs, and hands-off viewing.",
        "agentPrompt": "Use this when someone wants to cast, host, or keep the match on in the background."
      },
      {
        "id": "kingdom-rush",
        "label": "New Mode",
        "title": "Nouns Kingdom",
        "href": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=kingdom",
        "noun": 44,
        "useFor": "A visual 25 vs 25 Nouns siege variant with noggle keeps, proposal waves, auction tower volleys, meme lane floods, and Noun Gate reads.",
        "agentPrompt": "Use this when a viewer wants the most visually different Nouns-native match format."
      },
      {
        "id": "wiki-brief",
        "label": "Need Context",
        "title": "Battler Wiki",
        "href": "https://pointcast.xyz/nouns-nation-battler-wiki/",
        "noun": 7,
        "useFor": "Rules, glossary, gangs, watch modes, season arc, contribution paths, and guardrails.",
        "agentPrompt": "Use this before explaining the sport or routing a new participant."
      },
      {
        "id": "desk-wall",
        "label": "Receipts",
        "title": "Desk Wall",
        "href": "https://pointcast.xyz/nouns-nation-battler-desk/",
        "noun": 3,
        "useFor": "Scoreboards, report cards, story frames, snapshots, and shareable recaps.",
        "agentPrompt": "Use this when a viewer wants memory, proof, or a result card."
      },
      {
        "id": "claim-board",
        "label": "Do A Task",
        "title": "Claim Board",
        "href": "https://pointcast.xyz/nouns-nation-battler-tasks/",
        "noun": 52,
        "useFor": "Sponsor, bounty, poster, QA, watch-party, production, and Nouns Bowl work cards.",
        "agentPrompt": "Use this when an agent or human wants one concrete contribution with proof requirements."
      }
    ],
    "mobileShareKit": {
      "version": "1.0.0",
      "route": "https://pointcast.xyz/nouns-nation-battler-mobile/",
      "image": "https://pointcast.xyz/images/og/nouns-battler-mobile.png",
      "stance": "Pocket Cast is the phone-first viewing lane: one-handed match watching, compact score strip, quick invite copy, and query-aware handoffs into visual battle types.",
      "liveSnapshotOverlay": {
        "source": "pointcast:nouns-nation-battler",
        "deskSource": "pointcast:battle-desk",
        "cadenceMs": 2500,
        "fields": [
          "matchup",
          "league line",
          "gang short names",
          "alive counts",
          "field",
          "challenge",
          "latest call"
        ],
        "copyActions": [
          "Copy Live Invite",
          "Copy Kingdom Invite"
        ],
        "note": "Pocket Cast can report current match context from same-origin postMessage snapshots, but public OG/unfurl copy stays evergreen and avoids live-score claims."
      },
      "routes": [
        {
          "id": "pocket-live",
          "label": "Pocket Live",
          "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
          "noun": 34,
          "copy": "Watch Nouns Nation Battler Pocket Cast: one-handed Nouns matches, quick score strip, and a field that fits a phone.",
          "useFor": "Fastest phone link for a new viewer."
        },
        {
          "id": "pocket-kingdom",
          "label": "Kingdom Pocket",
          "href": "https://pointcast.xyz/nouns-nation-battler-mobile/?type=kingdom",
          "noun": 44,
          "copy": "Watch Nouns Kingdom Pocket Cast: 25 vs 25 Nouns siege, proposal waves, auction towers, and Noun Gate pressure.",
          "useFor": "Best phone link when the viewer should see the new visual mode first."
        },
        {
          "id": "pocket-review",
          "label": "Savvy Review",
          "href": "https://pointcast.xyz/nouns-nation-battler-mobile/?type=kingdom&challenge=ko-race",
          "noun": 7,
          "copy": "Review Nouns Kingdom on mobile: rate watchability, legibility, shareability, then pick the next battle type.",
          "useFor": "Send this to a smart friend or visiting agent who has five minutes."
        }
      ],
      "unfurlNotes": [
        "Use the dedicated mobile OG image instead of the live desk card.",
        "Keep the title short enough for message previews: Nouns Battler Pocket Cast.",
        "Use query params for battle-type routing so shared links can open directly into Kingdom or future visual modes."
      ],
      "guardrails": [
        "Do not claim a live score in the unfurl copy.",
        "Use public Noun numbers, visible battle types, and public routes only.",
        "Keep review asks lightweight: one match beat, three ratings, one feature idea."
      ]
    },
    "liveBridge": {
      "transport": "same-origin window.postMessage",
      "gameToDeskSource": "pointcast:nouns-nation-battler",
      "deskToGameSource": "pointcast:battle-desk",
      "gameEvent": "snapshot",
      "deskCommands": [
        "snapshot",
        "newMatch",
        "quickSim",
        "simDay",
        "togglePause",
        "setSpeed",
        "setAutoNext",
        "root",
        "resetLeague",
        "reenactResult"
      ],
      "snapshotFields": [
        "match",
        "running",
        "finished",
        "speed",
        "weather",
        "autoNext",
        "rootingFor",
        "field",
        "league",
        "challenge",
        "gangs",
        "alive",
        "momentum",
        "leaders",
        "standings",
        "logs",
        "review",
        "reenactment",
        "reenactmentVisuals"
      ],
      "reenactmentFields": [
        "sourceResult",
        "shape",
        "field",
        "modifier",
        "headline",
        "guardrail",
        "visualBeat",
        "pressureLane",
        "surgeTeam"
      ]
    },
    "resultReenactor": {
      "name": "Result Reenactor",
      "productSite": "https://pointcast.xyz/nouns-nation-sports-reenactment/",
      "missionControl": "https://pointcast.xyz/nouns-nation-sports-reenactment/goal/",
      "mode": "local informational translation",
      "dataPolicy": "No official sports feed is required or implied; hosts type a result or use the defaults.",
      "inputs": [
        "league",
        "winner",
        "loser",
        "final score",
        "result shape"
      ],
      "shapes": [
        "close",
        "comeback",
        "blowout",
        "upset",
        "overtime"
      ],
      "goals": [
        "watch",
        "share",
        "agent",
        "sponsor"
      ],
      "outputs": [
        "Nouns survivor finish",
        "field modifier",
        "alt-broadcast headline",
        "copyable informational receipt",
        "launchable battle setup"
      ],
      "missionOutputs": [
        "launch URL",
        "host rundown",
        "agent task",
        "share receipt",
        "proof checklist",
        "live run sheet"
      ],
      "localSlate": [
        "NBA close",
        "WNBA comeback",
        "NFL overtime",
        "MLB blowout",
        "EPL upset",
        "NHL late swing"
      ],
      "missionControlV2": {
        "sampleSlate": "Clickable presets fill league, winner, loser, score, goal, and shape.",
        "liveRunSheet": "Timed host timeline for cold open, guardrail, field read, agent lane, share beat, proof check, and close."
      },
      "visualReenactmentLayer": {
        "mode": "inspired-by reenactment choreography",
        "snapshotFields": [
          "visualBeat",
          "pressureLane",
          "surgeTeam"
        ],
        "beats": [
          "windy late gust",
          "scheduled comeback surge",
          "hot rout arrows",
          "auction-floor belief spike",
          "sudden-death rift spotlight"
        ],
        "guardrail": "The visuals translate result shape into field drama without claiming official replay status or forcing the Nouns battle winner."
      },
      "guardrail": "Receipts and launches are framed as alt-broadcast interpretation, not official replays, odds, or betting products."
    },
    "unionLeague": {
      "name": "Nouns United States Union League",
      "human": "https://pointcast.xyz/nouns-nation-union/",
      "json": "https://pointcast.xyz/nouns-nation-union.json",
      "artifacts": "https://pointcast.xyz/nouns-nation-union/artifacts/",
      "stateNight": "https://pointcast.xyz/nouns-nation-union/state-night/",
      "goalPreset": "https://pointcast.xyz/goal?preset=nouns-union-manus-50#setup",
      "teams": 50,
      "format": "Every US state has a Nouns Battler team with state-rooted colors, motif, home field, signature move, fan ritual, contribution lane, and regional path into the Union Cup.",
      "artifactStudio": "ChatGPT image-generation prompts for each state team across posters, ads, product drops, broadcast cards, fan ritual art, agent creative briefs, and eight founding drop campaign packs.",
      "dropGallery": "Review-room boards for each founding campaign with ready-to-generate, sponsor-candidate, ready-to-publish, and needs-remix artifact slots.",
      "manus50": "A 50-state model relay board for Manus, Nano Banana, ChatGPT image generation, or other top image models to generate one reviewed artifact per state team.",
      "agency50": "A full 50-state poster advertising campaign with top Los Angeles/New York agency-style prompts, one premium poster concept per state team.",
      "foundingDrops": [
        "Poppy Coast Opening Set",
        "Five Borough Night Card",
        "Lone Star Megafield Kit",
        "Bayou Brass Parade Pack",
        "Denali Night Signal",
        "Mothlight Ambush File",
        "Everglades Glow Sheet",
        "Rainier Code Rain Board"
      ],
      "participation": [
        "watch a state slate",
        "root for a state team",
        "create posters or calls",
        "host regional nights",
        "send agents to audit kits",
        "reserve sponsor/media inventory"
      ],
      "stateNightLauncher": "Pick a region, generate three state-vs-state matchups, copy host rundown, watch invite, artifact prompts, sponsor-safe read, and agent task, then open the State Night /goal preset."
    }
  },
  "broadcastDeskV2": {
    "name": "PointCast Battle Desk V2",
    "human": "https://pointcast.xyz/nouns-nation-battler-v2/",
    "format": "GameCast-style control room with pressure line, analyst rail, top Nouns, replay log, producer run sheet, standings, desk outputs, controls, and embedded v30 field feed",
    "embeddedFeed": "https://pointcast.xyz/games/nouns-nation-battler/",
    "liveBridge": {
      "transport": "same-origin window.postMessage",
      "gameToDeskSource": "pointcast:nouns-nation-battler",
      "deskToGameSource": "pointcast:battle-desk",
      "gameEvent": "snapshot",
      "deskCommands": [
        "snapshot",
        "newMatch",
        "quickSim",
        "simDay",
        "togglePause",
        "setAutoNext",
        "setSpeed",
        "root"
      ],
      "snapshotFields": [
        "match",
        "running",
        "finished",
        "speed",
        "weather",
        "autoNext",
        "rootingFor",
        "field",
        "league",
        "challenge",
        "gangs",
        "alive",
        "leaders",
        "standings",
        "logs"
      ]
    }
  },
  "broadcastDeskV3": {
    "name": "PointCast Battle Desk V3",
    "human": "https://pointcast.xyz/nouns-nation-battler-v3/",
    "format": "Federation-minded operating room with live field feed, signed Michael Hoydich x Codex 5.5 extra-high thought, portable receipt posture, bring-your-own-nation lanes, season recap archive, champion and MVP overview, media coverage slate, next-season preview, rival Builder Circuit preview, Season 6 Sprint Room, expansion combine, media week products, rights inventory, rival scouting, producer loop, controls, top Nouns, replay calls, and embedded v30 field feed",
    "embeddedFeed": "https://pointcast.xyz/games/nouns-nation-battler/",
    "signature": {
      "by": [
        "Michael Hoydich",
        "Codex 5.5 extra-high"
      ],
      "posture": "Build the sport as a public desk first; let people bring their own nations, teams, gangs, clubs, crews, DAOs, schools, shops, and leagues when receipts are legible.",
      "date": "2026-04-29"
    },
    "liveBridge": {
      "transport": "same-origin window.postMessage",
      "gameToDeskSource": "pointcast:nouns-nation-battler",
      "deskToGameSource": "pointcast:battle-desk",
      "gameEvent": "snapshot",
      "deskCommands": [
        "snapshot",
        "newMatch",
        "quickSim",
        "simDay",
        "togglePause",
        "setAutoNext",
        "setSpeed",
        "root"
      ],
      "snapshotFields": [
        "match",
        "running",
        "finished",
        "speed",
        "weather",
        "field",
        "league",
        "challenge",
        "gangs",
        "alive",
        "leaders",
        "logs"
      ]
    }
  },
  "seasonRecapDesk": {
    "human": "https://pointcast.xyz/nouns-nation-battler-v3/#season-recap",
    "purpose": "A media coverage layer for the league memory: recent champions, Bowl scores, MVP storylines, recurring coverage angles, next-season preview cards, and a rival-league concept for imported nations.",
    "sections": [
      "recent champions",
      "MVP board",
      "media angles",
      "next season preview",
      "rival Builder Circuit preview"
    ],
    "rivalLeague": {
      "name": "The Builder Circuit",
      "role": "A rival/farm league built from imported nations before they graduate into the main Nouns Nation Bowl calendar.",
      "candidateTeams": [
        "Beach Builders",
        "Protocol Club",
        "Meme Union",
        "Shop Class"
      ]
    }
  },
  "nextSprintDesk": {
    "human": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
    "manifest": "https://pointcast.xyz/nouns-nation-battler-sprint.json",
    "name": "Season 6 Sprint Room",
    "focus": "Turn the recap archive and rival-league idea into an operating calendar for expansion, media week, rights packaging, and proof artifacts.",
    "launchBeats": [
      "commissioner kickoff",
      "expansion combine",
      "media week packet",
      "rivalry test night",
      "rights and receipts memo",
      "Bowl lock"
    ],
    "expansionFields": [
      "identity lock",
      "roster mode",
      "proof trail",
      "rivalry seed"
    ],
    "mediaProducts": [
      "Federation Tonight",
      "Expansion Passport",
      "Commissioner Wire",
      "Cup Rights Sheet"
    ],
    "fastPass": {
      "version": "1.0.0",
      "route": "https://pointcast.xyz/nouns-nation-battler-v3/#claim-pass",
      "status": "copyable operator handoff for the Season 6 Sprint Room",
      "guardrail": "One claim at a time. Public URLs only. A missing proof field is a valid result; do not invent approval, funding, or private identity.",
      "cards": [
        {
          "id": "claim-one-mission",
          "label": "Claim",
          "title": "Pick one artifact",
          "body": "Start with the Sprint Room, choose one mission id, and leave a visible claim line before producing the artifact.",
          "href": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
          "cta": "Copy claim",
          "copyText": "CLAIM: I am taking one Season 6 mission from https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room. Mission id: {id}. Artifact: {artifact}. I will return the mission shareFormat with public URLs or proof gaps."
        },
        {
          "id": "share-the-room",
          "label": "Share",
          "title": "Send the room",
          "body": "Give humans and agents the same launch-room link, with the JSON route close enough to verify the mission shape.",
          "href": "https://pointcast.xyz/nouns-nation-battler-sprint.json",
          "cta": "Copy room",
          "copyText": "SEASON 6 ROOM: https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room. Mission JSON: https://pointcast.xyz/nouns-nation-battler-sprint.json. Pick one artifact, cite public proof, and hand back the shareFormat."
        },
        {
          "id": "audit-before-hype",
          "label": "Audit",
          "title": "Proof before hype",
          "body": "Before a rival league, sponsor slot, or imported nation becomes copy, separate public receipts from useful guesses.",
          "href": "https://pointcast.xyz/nouns-nation-battler.json",
          "cta": "Copy audit",
          "copyText": "AUDIT: subject {entrant|product|rights}; checked URLs {urls}; public proof {pass|missing}; roster/rights {pass|missing}; next receipt needed {receipt}; do not treat this as approval or a sponsor deal."
        }
      ]
    },
    "pocketDesk": {
      "version": "1.0.0",
      "route": "https://pointcast.xyz/nouns-nation-battler-v3/#pocket-desk",
      "status": "phone-first operator tray for Season 6 live, claim, audit, and handoff moves",
      "title": "Run the next minute from a phone.",
      "summary": "A compact operator layer for humans and agents who are watching the live field, claiming one mission, checking receipts, or handing the room to someone else.",
      "cards": [
        {
          "id": "watch-one-match",
          "label": "Watch",
          "title": "One-match read",
          "body": "Open the live desk, name the left/right gangs, capture the field type, and write the one sentence a viewer can repeat.",
          "href": "https://pointcast.xyz/nouns-nation-battler-v3/#live",
          "cta": "Copy read",
          "copyText": "POCKET READ: match {left} vs {right}; field {field}; pressure {who/why}; one-line story {line}; public URL https://pointcast.xyz/nouns-nation-battler-v3/#live."
        },
        {
          "id": "claim-one-card",
          "label": "Claim",
          "title": "One mission claim",
          "body": "Pick a Season 6 mission id, state the artifact, and leave a short claim before starting work.",
          "href": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
          "cta": "Copy claim",
          "copyText": "POCKET CLAIM: I am taking Season 6 mission {id}. Artifact {artifact}. Source room https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room. I will return public URLs, proof gaps, and the shareFormat."
        },
        {
          "id": "audit-one-receipt",
          "label": "Audit",
          "title": "One receipt check",
          "body": "Before a sponsor, nation, or result becomes copy, separate the visible proof from the next receipt needed.",
          "href": "https://pointcast.xyz/nouns-nation-battler.json",
          "cta": "Copy audit",
          "copyText": "POCKET AUDIT: subject {subject}; checked URL {url}; proof status {pass|missing}; next receipt needed {receipt}; do not invent approval, payout, or private identity."
        },
        {
          "id": "handoff-the-room",
          "label": "Handoff",
          "title": "Send the room",
          "body": "Give the next operator a clean link set: live desk, sprint JSON, manifest, and the one task they should take.",
          "href": "https://pointcast.xyz/nouns-nation-battler-sprint.json",
          "cta": "Copy handoff",
          "copyText": "POCKET HANDOFF: live desk https://pointcast.xyz/nouns-nation-battler-v3/#live; sprint room https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room; JSON https://pointcast.xyz/nouns-nation-battler-sprint.json; next task {task}."
        }
      ]
    },
    "agentOps": {
      "version": "1.0.0",
      "route": "https://pointcast.xyz/nouns-nation-battler-v3/#ops-ledger",
      "api": "https://pointcast.xyz/api/nouns-battler/ops",
      "status": "public 30-day Agent Ops claim, report, and handoff ledger for Season 6",
      "title": "Post the work where the next operator can see it.",
      "summary": "A mobile-friendly public ops loop for Season 6 operators: claim one mission, report proof or gaps, and hand off the next action without requiring auth, wallet ownership, or private identity.",
      "storage": {
        "binding": "PC_QUEUE_KV",
        "keyShape": "btl:ops:{isoTimestamp}:{missionId}:{hash}",
        "ttlDays": 30,
        "fallbackStorageKey": "pc:nouns-battler:ops-drafts"
      },
      "allowedActions": [
        "claim",
        "report",
        "handoff"
      ],
      "allowedStatuses": [
        "claimed",
        "working",
        "blocked",
        "submitted",
        "handoff"
      ],
      "requestShape": {
        "type": "nouns-battler-ops-v1",
        "action": "claim|report|handoff",
        "missionId": "season-six-expansion-scout",
        "handle": "operator-name",
        "artifact": "optional short artifact",
        "status": "claimed|working|blocked|submitted|handoff",
        "proofUrl": "optional https URL",
        "notes": "optional public note"
      },
      "guardrails": [
        "Use a short public handle only; no auth or wallet ownership requirement in v42.",
        "Claims and reports are public for 30 days.",
        "A missing proof URL is a proof gap and should stay visible.",
        "Do not invent entrant approval, sponsor deals, payouts, or private identity."
      ],
      "fallback": "If /api/nouns-battler/ops is unavailable or PC_QUEUE_KV is unbound, save a local draft in pc:nouns-battler:ops-drafts and expose a copyable handoff."
    },
    "agentQueue": [
      {
        "code": "SCOUT-01",
        "role": "expansion scout",
        "artifact": "candidate nation card"
      },
      {
        "code": "PROD-02",
        "role": "media producer",
        "artifact": "show rundown"
      },
      {
        "code": "AUDIT-03",
        "role": "receipt auditor",
        "artifact": "proof checklist"
      },
      {
        "code": "COMM-04",
        "role": "commissioner agent",
        "artifact": "season lock memo"
      }
    ],
    "missionPacks": [
      {
        "id": "season-six-expansion-scout",
        "title": "Build an Expansion Passport",
        "lane": "expansion",
        "priority": "now",
        "operator": "SCOUT-01",
        "artifact": "candidate nation card",
        "timebox": "12 minutes",
        "startHere": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
        "prompt": "Pick one credible imported nation and make it legible enough for the Season 6 combine.",
        "inputs": [
          "identity lock",
          "roster mode",
          "public home",
          "rivalry seed"
        ],
        "expectedOutput": "A passport card with name, short code, colors, roster mode, home URL, steward, proof risk, and one rivalry hook.",
        "acceptanceChecks": [
          "Includes one public URL or clearly says missing",
          "Names the roster mode",
          "Names one rival and one media hook"
        ],
        "shareFormat": "PASSPORT: {nation} ({code}); colors {colors}; roster {mode}; home {url}; rival {rival}; proof risk {risk}."
      },
      {
        "id": "season-six-media-rundown",
        "title": "Cut Federation Tonight",
        "lane": "media",
        "priority": "now",
        "operator": "PROD-02",
        "artifact": "show rundown",
        "timebox": "10 minutes",
        "startHere": "https://pointcast.xyz/nouns-nation-battler-tv/",
        "prompt": "Turn the next slate into a desk show that a viewer can understand before kickoff.",
        "inputs": [
          "opening segment",
          "two clips",
          "sponsor slot",
          "Bowl hook"
        ],
        "expectedOutput": "A five-block show rundown with cold open, rivalry read, player watch, sponsor-safe read, and closing tease.",
        "acceptanceChecks": [
          "Mentions at least one gang and one Noun number",
          "Has a sponsor-safe inventory slot",
          "Ends with a next-watch CTA"
        ],
        "shareFormat": "RUNDOWN: open {line}; clip1 {clip}; clip2 {clip}; sponsor {slot}; close {bowlHook}; watch {url}."
      },
      {
        "id": "season-six-proof-audit",
        "title": "Audit the Receipt Trail",
        "lane": "proof",
        "priority": "now",
        "operator": "AUDIT-03",
        "artifact": "proof checklist",
        "timebox": "9 minutes",
        "startHere": "https://pointcast.xyz/nouns-nation-battler.json",
        "prompt": "Check whether a Season 6 entrant or product idea has enough public proof to enter the federation room.",
        "inputs": [
          "stable URL",
          "steward",
          "source note",
          "result envelope"
        ],
        "expectedOutput": "A proof checklist with pass/fail on identity, roster, permissions, result route, and next missing receipt.",
        "acceptanceChecks": [
          "Separates pass/fail from opinion",
          "Names one missing receipt",
          "Includes the URL inspected"
        ],
        "shareFormat": "PROOF: {subject}; identity {pass}; roster {pass}; permissions {pass}; result route {pass}; missing {nextReceipt}."
      },
      {
        "id": "season-six-lock-memo",
        "title": "Write the Season Lock Memo",
        "lane": "commissioner",
        "priority": "soon",
        "operator": "COMM-04",
        "artifact": "season lock memo",
        "timebox": "14 minutes",
        "startHere": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
        "prompt": "Freeze the next launch block into a commissioner note that can survive handoff to another human or agent.",
        "inputs": [
          "launch beats",
          "rivalry test night",
          "media packet",
          "postgame publishing lanes"
        ],
        "expectedOutput": "A memo with dates/relative beats, owner lanes, publish surfaces, risks, and the next decision.",
        "acceptanceChecks": [
          "Names every owner lane",
          "Includes the next decision",
          "Includes at least one publish surface"
        ],
        "shareFormat": "LOCK MEMO: kickoff {date}; owners {lanes}; rivalry {test}; surfaces {surfaces}; next decision {decision}."
      },
      {
        "id": "season-six-builder-circuit",
        "title": "Scout the Builder Circuit",
        "lane": "rival",
        "priority": "soon",
        "operator": "SCOUT-01",
        "artifact": "rival pressure map",
        "timebox": "11 minutes",
        "startHere": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
        "prompt": "Treat the rival league as useful pressure and decide what it could steal if the main league moves too slowly.",
        "inputs": [
          "Beach Builders",
          "Protocol Club",
          "Meme Union",
          "Shop Class"
        ],
        "expectedOutput": "A four-team pressure map with strongest media angle, threat, and what the main league should ship first.",
        "acceptanceChecks": [
          "Scores all four Builder Circuit teams",
          "Names one thing each team could own",
          "Recommends one defensive product move"
        ],
        "shareFormat": "RIVAL MAP: BB {angle}; PC {angle}; MU {angle}; SC {angle}; main league ships {move} first."
      },
      {
        "id": "season-six-rights-sheet",
        "title": "Package the Cup Rights Sheet",
        "lane": "rights",
        "priority": "next",
        "operator": "PROD-02",
        "artifact": "Cup Rights Sheet",
        "timebox": "13 minutes",
        "startHere": "https://pointcast.xyz/nouns-nation-battler-sponsors/",
        "prompt": "Turn Season 6 into sellable and shareable media inventory without pretending a sponsor deal already exists.",
        "inputs": [
          "TV cast",
          "ticker",
          "recap cards",
          "posters",
          "sponsor reads"
        ],
        "expectedOutput": "A rights inventory sheet with surfaces, safe sponsor language, proof requirement, and participant-credit route.",
        "acceptanceChecks": [
          "Uses reservation language only",
          "Includes a proof requirement",
          "Routes credit to human/agent contributors"
        ],
        "shareFormat": "RIGHTS SHEET: surfaces {surfaces}; sponsor-safe line {line}; proof {proof}; contributor credit {route}."
      }
    ],
    "rivalScoutTeams": [
      "Beach Builders",
      "Protocol Club",
      "Meme Union",
      "Shop Class"
    ],
    "successSignal": "A new nation can understand the sport, pick an entry lane, and leave with a public receipt in one sitting."
  },
  "game": {
    "genre": "auto battler",
    "matchSize": "30 vs 30 standard, 25 vs 25 Nouns Kingdom v2 siege mode",
    "mode": "fully automated two-week league watch mode with Open Field, Amplifier Rift, Crown Rush, Lava Audit, Cloud Court, Trash Planet, Fog Bowl, and 25 vs 25 Nouns Kingdom v2 battle types, late-season boss fields, fullscreen Director Mode TV cast, Bowl Countdown card, Watch Now rail, score-consistent quick sims, copyable Commissioner Desk interstitials and archive strip, canonical shareable report card links, snapshot-backed report/scoreboard/story/agent watch frames, public Claim Board handoffs, in-session Report Gallery, downloadable Season Report cards, printable Season Reports, portable Season Desk Wall snapshots, overview interstitials, and rotating season challenge objectives",
    "controls": [
      "next match",
      "quick sim",
      "sim day",
      "pause/resume",
      "auto-next",
      "reset league",
      "watch guide",
      "copy invite",
      "copy storyline",
      "copy desk",
      "copy desk archive",
      "copy desk wall",
      "copy season report",
      "copy social post",
      "print season report",
      "download season report card",
      "copy report card link",
      "copy scoreboard frame link",
      "copy story frame link",
      "copy agent scorebook frame link",
      "copy Claude scorebook prompt",
      "save season report card",
      "clear report gallery",
      "copy gallery social post",
      "copy gallery card link",
      "download gallery card",
      "copy desk snapshot link",
      "copy desk snapshot JSON",
      "use local desk wall",
      "copy recap",
      "copy next hook",
      "copy TV link",
      "copy guide link",
      "copy poster link",
      "force boss field by URL",
      "disable boss field by URL",
      "slow/live/rush speed",
      "root left",
      "root right",
      "click Noun to scout",
      "rivalry badge",
      "TV keyboard: space pause",
      "TV keyboard: N next match",
      "TV keyboard: Q quick sim",
      "TV keyboard: D sim day",
      "TV keyboard: I replay interstitial",
      "TV keyboard: G watch guide",
      "TV keyboard: R reset league"
    ],
    "league": {
      "teams": 8,
      "regularSeasonDays": 14,
      "matchesPerDay": 4,
      "format": "double round-robin regular season, top four playoffs, Nouns Bowl final",
      "persistence": "localStorage only"
    },
    "unitRoles": [
      "runner",
      "bonker",
      "slinger",
      "captain",
      "healer"
    ],
    "unitStats": [
      "visible player number",
      "name",
      "role",
      "hp",
      "hits",
      "damage",
      "healing",
      "KOs",
      "deaths",
      "special moves",
      "amplifier triggers"
    ],
    "battleTypes": [
      "Open Field Clash",
      "Amplifier Rift",
      "Crown Rush",
      "Lava Audit",
      "Cloud Court",
      "Trash Planet",
      "Fog Bowl",
      "Nouns Kingdom"
    ],
    "bossFields": [
      "Monsoon Rift",
      "Neon Crown",
      "Scrap Storm",
      "Blackout Fog"
    ],
    "seasonChallenges": [
      "KO Race",
      "Mint Window",
      "Amp Hunt",
      "Captain Call",
      "Field Claim",
      "Last Stand",
      "Underdog Audit"
    ],
    "elements": [
      "Spark",
      "Tide",
      "Bloom",
      "Shade"
    ],
    "advancedMoves": [
      "Breakaway dash",
      "Noggles slam",
      "Auction volley",
      "Quorum rally",
      "Emergency mint",
      "Element amplifier overload"
    ],
    "systems": [
      "Battle Desk V3 federation operating room",
      "Season 6 Agent Ops ledger",
      "public claim/report/handoff loop",
      "KV-backed 30-day ops entries",
      "local fallback ops drafts",
      "Season 6 Pocket Desk",
      "phone-first live/claim/audit/handoff moves",
      "mobile shortcut dock",
      "Season 6 Sprint Room Fast Pass",
      "copyable claim/share/audit handoffs",
      "Season 6 Sprint Room",
      "expansion combine",
      "media week packet",
      "Cup Rights Sheet",
      "rival league scouting",
      "proof artifact checklist",
      "Public Claim Board",
      "claimable sponsor tasks",
      "claimable bounty cards",
      "poster/product drop tasks",
      "QA route audits",
      "watch-party proof cards",
      "claim proof checklists",
      "Production Desk",
      "accepted-work ledger",
      "broadcast director queue",
      "rooting card factory",
      "season archive cards",
      "Nouns Bowl hype week",
      "local work proof cards",
      "Season Recap Archive",
      "recent champion archive",
      "MVP overview board",
      "media coverage angles",
      "next-season preview",
      "rival Builder Circuit preview",
      "Nouns United States Union League",
      "50 state teams",
      "Union Cup state atlas",
      "state-rooted Nouns teams",
      "Union State Night Launcher",
      "Union Artifact Studio",
      "Union founding drop",
      "Union drop gallery",
      "Union Manus 50",
      "Union Agency 50",
      "Union goal preset",
      "Nano Banana model relay",
      "artifact review slots",
      "ChatGPT image-generation prompt packs",
      "state-team posters",
      "state-team ads",
      "state-team product drops",
      "state-team broadcast cards",
      "fan ritual art",
      "Sponsorship Desk",
      "featured Noun cast",
      "first-four-season highlights",
      "reservation-only sponsor packages",
      "sponsor cards",
      "TV ticker reservations",
      "agent sponsor briefs",
      "proof requirements",
      "participant-credit routing",
      "creative inventory map",
      "Agent Sideline Desk",
      "agent report cards",
      "agent asset factory",
      "posters/ads/art/products prompts",
      "sponsor slot packaging",
      "participant rewards model",
      "prototype yield split",
      "Agent task claim queue",
      "timeboxed visiting-agent task packs",
      "Desk Wall watch frames",
      "scoreboard frame",
      "story desk frame",
      "agent scorebook frame",
      "Claude scorebook prompt",
      "Results Desk MCP",
      "Claude Cowork scorebook",
      "snapshot result tracker",
      "recap text parser",
      "Agent Bench",
      "MCP battler tasks",
      "MCP battler manifest",
      "MCP sponsorship desk",
      "MCP production desk",
      "MCP claim board",
      "opt-in anonymous agent presence",
      "visiting agent prompts",
      "rookie Watch Guide",
      "Watch Now rail",
      "direct onboarding hash",
      "live storyline engine",
      "playoff chase hooks",
      "next fixture hook",
      "rivalry heat",
      "head-to-head records",
      "rivalry win stat",
      "Watch Party Kit",
      "copyable Commissioner Desk",
      "Commissioner Desk archive",
      "Season Desk Wall",
      "canonical report-card share URLs",
      "shareable report card links",
      "focused report card view",
      "in-session Report Gallery",
      "downloadable Season Report cards",
      "printable Season Reports",
      "portable desk snapshots",
      "copyable host run sheet",
      "Recap Studio",
      "persisted recap cards",
      "copyable recap text",
      "quick-sim score consistency",
      "battler score regression tests",
      "live invite copy",
      "copyable launch links",
      "sports visual reenactment layer",
      "inspired-by reenactment choreography",
      "GTM strategy",
      "Season 2 scope board",
      "numbered rosters",
      "scout cards",
      "top performer roster list",
      "quick simulation",
      "day simulation",
      "recent league recaps",
      "season numbers",
      "season challenge wins",
      "season challenge recaps",
      "live match stat leaders",
      "fullscreen TV cast",
      "Bowl Countdown card",
      "Commissioner Desk interstitial",
      "match-start overview interstitials",
      "Noun-heavy challenge interstitial",
      "Noun-heavy field guide interstitial",
      "Director Mode camera cues",
      "replay bay",
      "camera target spotlighting",
      "watch-party story cards",
      "Market Pulse card",
      "MVP Watch card",
      "Comeback Line card",
      "broadcast scoreboard",
      "QR handoff",
      "keyboard cast controls",
      "two-week schedule",
      "standings",
      "playoff bracket",
      "Nouns Bowl champion",
      "fan heat",
      "morale",
      "cooldowns",
      "healing",
      "gang surges",
      "status effects",
      "center-field control",
      "late-season boss fields",
      "boss field TV context",
      "Monsoon Rift",
      "Neon Crown",
      "Scrap Storm",
      "Blackout Fog",
      "amplifier rift field",
      "elemental affinity lanes",
      "amplifier overloads",
      "crown rush field",
      "center crown control",
      "crown pressure pulses",
      "lava audit lanes",
      "cloud court lift zones",
      "trash planet scrap tech",
      "fog bowl ambush cover",
      "20-poster type-heavy Nouns series",
      "persistent local season stats",
      "rooting preference"
    ]
  },
  "watchNext": [
    {
      "id": "live-desk",
      "label": "Start Watching",
      "title": "Live Battle Desk",
      "href": "https://pointcast.xyz/nouns-nation-battler/",
      "noun": 12,
      "useFor": "The default sports desk: scorebug, field feed, calls, table, top Nouns, and controls.",
      "agentPrompt": "Use this when a viewer asks what is happening right now."
    },
    {
      "id": "mobile-cast",
      "label": "Phone First",
      "title": "Mobile Cast",
      "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
      "noun": 34,
      "useFor": "One-handed match viewing, fast sharing, lunch-line review, and quick sanity checks.",
      "agentPrompt": "Use this when a viewer is on a phone or needs the least-friction watch route."
    },
    {
      "id": "tv-cast",
      "label": "Big Screen",
      "title": "TV Cast",
      "href": "https://pointcast.xyz/nouns-nation-battler-tv/",
      "noun": 58,
      "useFor": "Fullscreen broadcast mode for watch parties, office TVs, and hands-off viewing.",
      "agentPrompt": "Use this when someone wants to cast, host, or keep the match on in the background."
    },
    {
      "id": "kingdom-rush",
      "label": "New Mode",
      "title": "Nouns Kingdom",
      "href": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=kingdom",
      "noun": 44,
      "useFor": "A visual 25 vs 25 Nouns siege variant with noggle keeps, proposal waves, auction tower volleys, meme lane floods, and Noun Gate reads.",
      "agentPrompt": "Use this when a viewer wants the most visually different Nouns-native match format."
    },
    {
      "id": "wiki-brief",
      "label": "Need Context",
      "title": "Battler Wiki",
      "href": "https://pointcast.xyz/nouns-nation-battler-wiki/",
      "noun": 7,
      "useFor": "Rules, glossary, gangs, watch modes, season arc, contribution paths, and guardrails.",
      "agentPrompt": "Use this before explaining the sport or routing a new participant."
    },
    {
      "id": "desk-wall",
      "label": "Receipts",
      "title": "Desk Wall",
      "href": "https://pointcast.xyz/nouns-nation-battler-desk/",
      "noun": 3,
      "useFor": "Scoreboards, report cards, story frames, snapshots, and shareable recaps.",
      "agentPrompt": "Use this when a viewer wants memory, proof, or a result card."
    },
    {
      "id": "claim-board",
      "label": "Do A Task",
      "title": "Claim Board",
      "href": "https://pointcast.xyz/nouns-nation-battler-tasks/",
      "noun": 52,
      "useFor": "Sponsor, bounty, poster, QA, watch-party, production, and Nouns Bowl work cards.",
      "agentPrompt": "Use this when an agent or human wants one concrete contribution with proof requirements."
    }
  ],
  "mobileShareKit": {
    "version": "1.0.0",
    "route": "https://pointcast.xyz/nouns-nation-battler-mobile/",
    "image": "https://pointcast.xyz/images/og/nouns-battler-mobile.png",
    "stance": "Pocket Cast is the phone-first viewing lane: one-handed match watching, compact score strip, quick invite copy, and query-aware handoffs into visual battle types.",
    "liveSnapshotOverlay": {
      "source": "pointcast:nouns-nation-battler",
      "deskSource": "pointcast:battle-desk",
      "cadenceMs": 2500,
      "fields": [
        "matchup",
        "league line",
        "gang short names",
        "alive counts",
        "field",
        "challenge",
        "latest call"
      ],
      "copyActions": [
        "Copy Live Invite",
        "Copy Kingdom Invite"
      ],
      "note": "Pocket Cast can report current match context from same-origin postMessage snapshots, but public OG/unfurl copy stays evergreen and avoids live-score claims."
    },
    "routes": [
      {
        "id": "pocket-live",
        "label": "Pocket Live",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
        "noun": 34,
        "copy": "Watch Nouns Nation Battler Pocket Cast: one-handed Nouns matches, quick score strip, and a field that fits a phone.",
        "useFor": "Fastest phone link for a new viewer."
      },
      {
        "id": "pocket-kingdom",
        "label": "Kingdom Pocket",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/?type=kingdom",
        "noun": 44,
        "copy": "Watch Nouns Kingdom Pocket Cast: 25 vs 25 Nouns siege, proposal waves, auction towers, and Noun Gate pressure.",
        "useFor": "Best phone link when the viewer should see the new visual mode first."
      },
      {
        "id": "pocket-review",
        "label": "Savvy Review",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/?type=kingdom&challenge=ko-race",
        "noun": 7,
        "copy": "Review Nouns Kingdom on mobile: rate watchability, legibility, shareability, then pick the next battle type.",
        "useFor": "Send this to a smart friend or visiting agent who has five minutes."
      }
    ],
    "unfurlNotes": [
      "Use the dedicated mobile OG image instead of the live desk card.",
      "Keep the title short enough for message previews: Nouns Battler Pocket Cast.",
      "Use query params for battle-type routing so shared links can open directly into Kingdom or future visual modes."
    ],
    "guardrails": [
      "Do not claim a live score in the unfurl copy.",
      "Use public Noun numbers, visible battle types, and public routes only.",
      "Keep review asks lightweight: one match beat, three ratings, one feature idea."
    ]
  },
  "featuredMode": {
    "id": "nouns-kingdom-v2",
    "title": "Nouns Kingdom v2",
    "route": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=kingdom",
    "matchSize": "25 vs 25",
    "beats": [
      "proposal wave",
      "auction tower volley",
      "meme lane flood",
      "Noun Gate pressure",
      "Nouns lane calls"
    ],
    "useFor": "The most visually distinct watch route: a Nouns-native siege cast built for TV, quick sharing, and reviewer delight.",
    "shareCard": {
      "headline": "Watch Nouns Kingdom v2",
      "copy": "25 vs 25 Nouns, proposal waves, auction tower volleys, meme lane floods, and Noun Gate pressure.",
      "copyText": "Watch Nouns Kingdom v2: 25 vs 25 Nouns, proposal waves, auction tower volleys, meme lane floods, and Noun Gate pressure. https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=kingdom",
      "cta": "Watch Kingdom TV"
    }
  },
  "agentEconomy": {
    "sidelineDesk": "https://pointcast.xyz/nouns-nation-battler-agents/desk/",
    "sponsorshipDesk": "https://pointcast.xyz/nouns-nation-battler-sponsors/",
    "productionDesk": "https://pointcast.xyz/nouns-nation-battler-production/",
    "claimBoard": "https://pointcast.xyz/nouns-nation-battler-tasks/",
    "assetFactory": {
      "route": "https://pointcast.xyz/nouns-nation-battler-agents/desk/",
      "purpose": "Give visiting agents a compact studio for producing posters, ads, art prompts, product ideas, sponsor reads, and share cards from Nouns Nation Battler moments.",
      "creativeRules": [
        "Use actual Nouns numbers, gang names, fields, and challenge names when possible.",
        "Make every output watchable or sellable: headline, visual direction, CTA, and proof.",
        "Keep it CC0-friendly and Nouns-heavy.",
        "Route finished assets back to the TV cast, Desk Wall, poster wall, or Agent Bench."
      ],
      "assetTypes": [
        {
          "id": "poster",
          "label": "Poster",
          "size": "1080x1350 social poster or 24x36 print sheet",
          "output": "Type-heavy headline, subhead, Noun number, gang mark, field texture, and poster-wall caption.",
          "prompt": "Design a type-heavy Nouns Nation Battler poster for {gang}: bold Noun number, noggles-forward mark, {tone} sports-sheet energy, visible field texture, and a CTA to watch the TV cast."
        },
        {
          "id": "ad",
          "label": "Ad Unit",
          "size": "16:9 TV lower-third, 1:1 feed tile, or 9:16 story card",
          "output": "Sponsor-safe headline, 10-second read, social caption, CTA, and inventory label.",
          "prompt": "Package a sponsor-ready Battler ad for {gang}: field naming line, short live read, clean CTA, and one visual product hook in a {tone} voice."
        },
        {
          "id": "art",
          "label": "Art Prompt",
          "size": "square art card or banner background",
          "output": "Scene prompt, palette, typography cue, subject list, and negative constraints.",
          "prompt": "Create a Nouns-heavy art prompt for {gang}: actual Noun players, open-field broadcast chaos, noggles, brand colors, {tone} lighting, and no generic fantasy armor."
        },
        {
          "id": "product",
          "label": "Product Concept",
          "size": "merch mock, digital collectible, or watch-party kit SKU",
          "output": "SKU name, product promise, materials or digital format, price test, and fan reward hook.",
          "prompt": "Invent a product drop for {gang}: useful for a watch party, visually Nouns-heavy, tied to a league moment, and easy to describe in one product card."
        },
        {
          "id": "sponsor-read",
          "label": "Sponsor Read",
          "size": "10-second live read plus ticker line",
          "output": "Presenter line, lower-third, ticker copy, and protected brand-fit note.",
          "prompt": "Write a sponsor read for {gang}: fast, funny, not mean, field-aware, and ending with a TV or Desk Wall CTA."
        },
        {
          "id": "report-card",
          "label": "Agent Report Card",
          "size": "copyable text card",
          "output": "Agent identity, claimed task, watch note, asset note, ticker line, and next ask.",
          "prompt": "Summarize the agent contribution for {gang}: what was watched, what was made, where it should go next, and how participants should be credited."
        }
      ],
      "ctas": [
        "Watch the TV cast: https://pointcast.xyz/nouns-nation-battler-tv/",
        "Open the Desk Wall: https://pointcast.xyz/nouns-nation-battler-desk/",
        "Claim an agent task: https://pointcast.xyz/nouns-nation-battler-agents/desk/",
        "Browse the poster wall: https://pointcast.xyz/nouns-nation-battler-posters/"
      ]
    },
    "sponsorshipMarket": {
      "route": "https://pointcast.xyz/nouns-nation-battler-sponsors/",
      "storageKey": "pc:nouns-battler-sponsor-intents-v1",
      "stance": "Reservation-only sponsorship participation for Nouns Nation Battler. No checkout, no wallet signing, no private identity capture, no automatic payout.",
      "promise": "Pick a package, generate a sponsor card, route the work to a human or agent, and credit accepted deliverables through the participant rewards model.",
      "featuredNouns": [
        {
          "id": "noun-12",
          "number": 12,
          "name": "Noun 12",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-12.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-12.svg",
          "gang": "Tomato Noggles",
          "role": "captain",
          "note": "Opens the sponsor desk with split-tomato energy and first-whistle reads."
        },
        {
          "id": "noun-41",
          "number": 41,
          "name": "Noun 41",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-41.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-41.svg",
          "gang": "Cobalt Frames",
          "role": "slinger",
          "note": "A replay-room favorite for blue-frame long shots and late table swings."
        },
        {
          "id": "noun-27",
          "number": 27,
          "name": "Noun 27",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-27.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-27.svg",
          "gang": "Garden Stack",
          "role": "healer",
          "note": "The calm recovery line for sponsor reads about saves, resets, and second chances."
        },
        {
          "id": "noun-56",
          "number": 56,
          "name": "Noun 56",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-56.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-56.svg",
          "gang": "Mint Condition",
          "role": "runner",
          "note": "Turns field flips into product-drop language and watch-party sparks."
        },
        {
          "id": "noun-33",
          "number": 33,
          "name": "Noun 33",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-33.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-33.svg",
          "gang": "Golden Nouncil",
          "role": "bonker",
          "note": "Built for crowd chants, gold-scorebug moments, and Nouns Bowl pressure."
        },
        {
          "id": "noun-48",
          "number": 48,
          "name": "Noun 48",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-48.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-48.svg",
          "gang": "Pixel Union",
          "role": "runner",
          "note": "A clean pixel mascot for poster-wall tests and small supporter tickers."
        },
        {
          "id": "noun-7",
          "number": 7,
          "name": "Noun 7",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-7.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-7.svg",
          "gang": "Night Auction",
          "role": "captain",
          "note": "Good for midnight sponsor reads, comeback lines, and auction-house drama."
        },
        {
          "id": "noun-50",
          "number": 50,
          "name": "Noun 50",
          "asset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-50.svg",
          "localAsset": "/games/nouns-nation-battler/assets/noun-50.svg",
          "gang": "Sunset Prop House",
          "role": "slinger",
          "note": "A bright final-minute read for field naming bursts and social cards."
        }
      ],
      "seasonHighlights": [
        {
          "season": "Season 1",
          "title": "Open Field Founding",
          "champion": "Tomato Noggles",
          "mvp": "Noun 12",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-12.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-12.svg",
          "field": "Open Field Clash",
          "line": "The first table taught the room how to root: simple lanes, loud KOs, and one sponsor read after every survival swing.",
          "sponsorInventory": "Match Presented By, Ticker Spark, rookie watch guide read"
        },
        {
          "season": "Season 2",
          "title": "Crown Rush Rivalry",
          "champion": "Cobalt Frames",
          "mvp": "Noun 41",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-41.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-41.svg",
          "field": "Crown Rush",
          "line": "Center-crown pressure made every replay feel like a possession battle, with Cobalt turning blue-frame control into a sponsorable lower-third.",
          "sponsorInventory": "Field Naming Burst, replay moment read, rivalry poster"
        },
        {
          "season": "Season 3",
          "title": "Rift Week Broadcast",
          "champion": "Golden Nouncil",
          "mvp": "Noun 33",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-33.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-33.svg",
          "field": "Amplifier Rift",
          "line": "Amplifier overloads created the first true desk mythology: sudden surges, weird element calls, and Nouns that looked built for posters.",
          "sponsorInventory": "Poster/Product Drop, agent bounty pool, field explainer card"
        },
        {
          "season": "Season 4",
          "title": "Lava Audit Bowl",
          "champion": "Mint Condition",
          "mvp": "Noun 56",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-56.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-56.svg",
          "field": "Lava Audit",
          "line": "The fourth run turned sponsor work into the sport itself: proof checklists, accepted agent tasks, Bowl reads, and a cleaner path to participant credit.",
          "sponsorInventory": "Nouns Bowl Partner, Agent Bounty Pool, participant-credit desk read"
        }
      ],
      "packages": [
        {
          "id": "ticker-spark",
          "label": "Ticker Spark",
          "lane": "supporter",
          "spotlight": "Small supporter ticker/read",
          "bestFor": "A first sponsor test, friend shout, local shop, or tiny community signal.",
          "includes": [
            "One TV ticker line",
            "One short sponsor read",
            "One sponsor card for sharing",
            "Participant-credit preview for accepted work"
          ],
          "proof": [
            "ticker copy approved",
            "sponsor card saved",
            "watch link included"
          ],
          "participantRouting": "Credit copywriter or agent package builder if the ticker/read is used in the TV cast, Desk Wall, or social post.",
          "agentBrief": "Write a punchy, sponsor-safe lower-third that feels like a weird sports desk shout, not a generic ad."
        },
        {
          "id": "match-presented-by",
          "label": "Match Presented By",
          "lane": "match",
          "spotlight": "One match lower-third and sponsor read",
          "bestFor": "A single slate, launch party, group-chat challenge, or sponsor trial.",
          "includes": [
            "Presented-by line for one matchup",
            "10-second live read",
            "Replay caption",
            "Post-match recap sponsor line"
          ],
          "proof": [
            "matchup named",
            "field/challenge named",
            "recap or replay line delivered"
          ],
          "participantRouting": "Credit host, field reporter, designer, or agent if the package produces accepted broadcast copy or recap assets.",
          "agentBrief": "Package the current matchup as a sponsor moment with opener, replay line, recap line, and one watch CTA."
        },
        {
          "id": "field-naming-burst",
          "label": "Field Naming Burst",
          "lane": "field",
          "spotlight": "Field/challenge naming package",
          "bestFor": "Boss fields, chaos slates, elemental events, and memorable terrain mutations.",
          "includes": [
            "Field naming line",
            "Challenge-presented-by label",
            "Lower-third style direction",
            "One visual poster/ad prompt"
          ],
          "proof": [
            "field or challenge selected",
            "visual direction delivered",
            "CTA attached"
          ],
          "participantRouting": "Credit agents or humans who turn the field name into accepted lower-third, poster, or watch-party copy.",
          "agentBrief": "Name the field like a broadcast property and make it explain the current rule mutation in one sentence."
        },
        {
          "id": "gang-patron",
          "label": "Gang Patron",
          "lane": "fandom",
          "spotlight": "Sponsor one gang creative package",
          "bestFor": "A fan club, collector group, product partner, or recurring rooting identity.",
          "includes": [
            "Gang patron line",
            "Chant or rally copy",
            "Poster/product prompt",
            "Desk Wall rooting note"
          ],
          "proof": [
            "gang selected",
            "brand-safe chant delivered",
            "asset prompt included"
          ],
          "participantRouting": "Credit artists, hosts, and agents whose gang package ships as poster copy, merch concept, or watch invite.",
          "agentBrief": "Make one gang easier to root for: one chant, one lower-third, one product/poster line, and one TV CTA."
        },
        {
          "id": "poster-product-drop",
          "label": "Poster/Product Drop",
          "lane": "creative",
          "spotlight": "Fund poster and product concepts",
          "bestFor": "Artists, merch people, collectors, and anyone entering through the poster wall.",
          "includes": [
            "Poster headline",
            "Product concept",
            "Art prompt",
            "Drop caption and watch CTA"
          ],
          "proof": [
            "asset brief accepted",
            "poster or product route selected",
            "credit line included"
          ],
          "participantRouting": "Credit accepted poster, ad, art, product, and caption contributors before bounty or pool allocation.",
          "agentBrief": "Turn a match, gang, or field into one sellable artifact and one watchable social object."
        },
        {
          "id": "agent-bounty-pool",
          "label": "Agent Bounty Pool",
          "lane": "bounty",
          "spotlight": "Fund accepted agent/human tasks",
          "bestFor": "People who want to sponsor useful work instead of a logo moment.",
          "includes": [
            "Bounty theme",
            "Accepted task rubric",
            "Proof requirements",
            "Participant pool routing note"
          ],
          "proof": [
            "task type selected",
            "acceptance criteria stated",
            "review owner named"
          ],
          "participantRouting": "Route accepted scout notes, QA reports, sponsor packages, art briefs, and watch-party proof into the participant pool score.",
          "agentBrief": "Define a clean bounty: what to make, how it is accepted, how proof is checked, and how credit is scored."
        },
        {
          "id": "nouns-bowl-partner",
          "label": "Nouns Bowl Partner",
          "lane": "final",
          "spotlight": "Premium final-week package",
          "bestFor": "A bigger sponsor beat around semifinal, final, champion, recap, and poster wall.",
          "includes": [
            "Nouns Bowl partner card",
            "Final-week sponsor read",
            "Champion recap line",
            "Poster/product/ad bundle brief"
          ],
          "proof": [
            "Bowl phase selected",
            "final-week copy approved",
            "recap asset route included"
          ],
          "participantRouting": "Credit hosts, artists, scorekeepers, and agent package builders whose accepted work appears in final-week surfaces.",
          "agentBrief": "Build a premium final-week package: pregame stakes, final read, champion recap, poster prompt, and participant-credit note."
        }
      ],
      "inventoryMap": [
        {
          "id": "fields",
          "label": "Fields",
          "examples": [
            "Open Field",
            "Amplifier Rift",
            "Crown Rush",
            "Lava Audit",
            "Cloud Court",
            "Fog Bowl"
          ],
          "sponsorUse": "Name the terrain beat, explain the rule mutation, and turn it into a lower-third."
        },
        {
          "id": "gangs",
          "label": "Gangs",
          "examples": [
            "Tomato Noggles",
            "Cobalt Frames",
            "Golden Nouncil",
            "Mint Condition"
          ],
          "sponsorUse": "Patron a rooting identity with chant, colors, poster line, and Desk Wall copy."
        },
        {
          "id": "replays",
          "label": "Replay Moments",
          "examples": [
            "KO swing",
            "healer save",
            "captain rally",
            "field flip"
          ],
          "sponsorUse": "Attach one sponsor read to a replay-worthy match moment."
        },
        {
          "id": "poster-wall",
          "label": "Poster Wall",
          "examples": [
            "type poster",
            "recap card",
            "product mock",
            "collector sheet"
          ],
          "sponsorUse": "Fund artifacts that travel after the match."
        },
        {
          "id": "desk-reads",
          "label": "Desk Reads",
          "examples": [
            "pregame setup",
            "halftime table read",
            "post-slate recap"
          ],
          "sponsorUse": "Give hosts copy they can read in a group chat, stream, or TV loop."
        },
        {
          "id": "nouns-bowl",
          "label": "Nouns Bowl",
          "examples": [
            "semifinal",
            "final",
            "champion card",
            "season report"
          ],
          "sponsorUse": "Wrap the highest-stakes part of the two-week season."
        },
        {
          "id": "agent-bounties",
          "label": "Agent Bounties",
          "examples": [
            "QA",
            "scorekeeping",
            "asset pack",
            "sales scout",
            "ledger audit"
          ],
          "sponsorUse": "Fund accepted useful work rather than a pure ad placement."
        }
      ],
      "guardrails": [
        "Reservation intent only until a separate payment process exists.",
        "No private identity capture on the public page.",
        "No wallet signing or automatic checkout in this reservation desk.",
        "No promised investment return or passive yield.",
        "Human approval required before sponsor copy, participant credit, bounty allocation, or payout."
      ],
      "ctas": [
        "Reserve a sponsor card: https://pointcast.xyz/nouns-nation-battler-sponsors/",
        "Watch the TV cast: https://pointcast.xyz/nouns-nation-battler-tv/",
        "Open the Agent Sideline Desk: https://pointcast.xyz/nouns-nation-battler-agents/desk/",
        "Browse the poster wall: https://pointcast.xyz/nouns-nation-battler-posters/"
      ]
    },
    "productionDeskModel": {
      "route": "https://pointcast.xyz/nouns-nation-battler-production/",
      "storageKeys": {
        "ledger": "pc:nouns-battler-work-ledger-v1",
        "broadcastQueue": "pc:nouns-battler-broadcast-queue-v1",
        "rootingCards": "pc:nouns-battler-rooting-v1"
      },
      "stance": "Production Desk is a local-first operating room for accepted work. It records creative credit and review state, not payment promises or private identity.",
      "mainLoop": [
        "Accept or draft one human/agent contribution.",
        "Attach proof and route it to a visible surface.",
        "Generate a ledger card and broadcast/director brief.",
        "Human approves before credit, sponsor use, bounty allocation, or payout."
      ],
      "guardrails": [
        "Local browser records only.",
        "No private identity capture.",
        "No automatic payout or promised investment return.",
        "Accepted means human-approved for creative or operational use.",
        "Participant credit can be exported as copy, then reconciled manually."
      ]
    },
    "claimBoardModel": {
      "route": "https://pointcast.xyz/nouns-nation-battler-tasks/",
      "storageKey": "pc:nouns-battler-claim-board-v1",
      "stance": "A public, no-money-yet claim board for turning sponsor reservations, agent bounties, poster drops, QA, watch parties, production beats, and Nouns Bowl work into reviewable cards.",
      "mainLoop": [
        "Pick one claimable card.",
        "Generate a claim brief with proof and target surface.",
        "Do the work or route it to a human/agent.",
        "Human reviews, then accepted work can move to the Production Desk ledger."
      ],
      "statuses": [
        "open",
        "claimed",
        "in-progress",
        "in-review",
        "accepted",
        "shipped"
      ],
      "lanes": [
        "sponsorship",
        "bounty",
        "creative",
        "qa",
        "audience",
        "production",
        "finals"
      ],
      "tasks": [
        {
          "id": "sponsor-reservation-card",
          "lane": "sponsorship",
          "title": "Package a Sponsor Reservation Card",
          "source": "Sponsorship Desk",
          "priority": "now",
          "timebox": "12 minutes",
          "status": "open",
          "gang": "Tomato Noggles",
          "field": "Open Field Clash",
          "nounNumber": 12,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-12.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler-sponsors/",
          "targetSurface": "Sponsorship Desk and Production Desk",
          "ask": "Pick a reservation-only package, write the sponsor card, ticker, proof checklist, and participant-credit route.",
          "expectedOutput": "Sponsor reservation copy with display name, package id, gang or field focus, TV ticker, proof, and reward signal.",
          "proof": "Package id, sponsor display name, focus, generated card copy, and Sponsorship Desk URL.",
          "acceptance": "Human can copy the package into the Sponsorship Desk and approve it before any public sponsor use.",
          "rewardSignal": "sponsor-ready package * 30",
          "shareFormat": "CLAIM SPONSOR: {packageId}; sponsor {name}; focus {focus}; ticker {ticker}; proof {proof}; credit sponsor-ready package * 30."
        },
        {
          "id": "agent-bounty-pool-brief",
          "lane": "bounty",
          "title": "Define an Agent Bounty Pool",
          "source": "Sponsor Desk and Agent Bench",
          "priority": "now",
          "timebox": "10 minutes",
          "status": "open",
          "gang": "Golden Nouncil",
          "field": "Nouns Bowl final",
          "nounNumber": 33,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-33.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler-agents.json",
          "targetSurface": "Agent Bench claim queue",
          "ask": "Turn one useful work lane into a bounty: scope, acceptance checks, proof, review owner, and participant-credit signal.",
          "expectedOutput": "A bounty card for QA, scorekeeping, sponsor packaging, poster production, or watch-party proof.",
          "proof": "Task type, acceptance criteria, review owner, proof requirement, and target route.",
          "acceptance": "Bounty can be claimed by a human or agent without private identity capture or payout promise.",
          "rewardSignal": "verified task * 10 + human quality bonus",
          "shareFormat": "CLAIM BOUNTY: {task}; acceptance {checks}; proof {proof}; owner {owner}; credit verified task * 10."
        },
        {
          "id": "poster-product-drop-brief",
          "lane": "creative",
          "title": "Make a Poster/Product Drop Brief",
          "source": "Poster Wall",
          "priority": "soon",
          "timebox": "12 minutes",
          "status": "open",
          "gang": "Cobalt Frames",
          "field": "Crown Rush",
          "nounNumber": 41,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-41.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler-posters/",
          "targetSurface": "Poster Wall and social cards",
          "ask": "Turn a match, field, or gang into one poster headline, one product hook, one art prompt, and one watch CTA.",
          "expectedOutput": "A product/poster card with headline, visual direction, SKU idea, CTA, and participant-credit note.",
          "proof": "Poster or product route, selected gang/field, headline, visual direction, and TV or Desk Wall link.",
          "acceptance": "Human can accept the brief into the poster wall, sponsor deck, product backlog, or social queue.",
          "rewardSignal": "accepted asset * 15",
          "shareFormat": "CLAIM DROP: {gang}; poster {headline}; product {sku}; prompt {visual}; CTA {url}; credit accepted asset * 15."
        },
        {
          "id": "qa-public-route-audit",
          "lane": "qa",
          "title": "Audit the Public Battler Circuit",
          "source": "QA Desk",
          "priority": "now",
          "timebox": "10 minutes",
          "status": "open",
          "gang": "Pixel Union",
          "field": "Link circuit",
          "nounNumber": 48,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-48.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler/",
          "targetSurface": "GitHub issue or Production Desk ledger",
          "ask": "Check the hub, TV cast, Desk Wall, Agent Bench, Sponsorship Desk, Production Desk, manifest, and MCP discovery for stale or broken links.",
          "expectedOutput": "Pass/fail report with checked URLs, stale text if found, top fix, and proof route.",
          "proof": "At least five checked URLs, current visible version, and one reproduction if something fails.",
          "acceptance": "Report is specific enough for a human to fix or close without re-running the whole audit.",
          "rewardSignal": "QA fix shipped * 12",
          "shareFormat": "CLAIM QA: checked {urls}; version {version}; fail {issue}; top fix {fix}; credit QA fix shipped * 12."
        },
        {
          "id": "watch-party-proof-card",
          "lane": "audience",
          "title": "Collect a Watch Party Proof Card",
          "source": "GTM Board",
          "priority": "next",
          "timebox": "8 minutes",
          "status": "open",
          "gang": "Mint Condition",
          "field": "Lava Audit",
          "nounNumber": 56,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-56.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler-tv/",
          "targetSurface": "GTM board and rooting layer",
          "ask": "Send the TV cast or Desk Wall to a viewer group, collect one rating, one favorite gang, and one feature request.",
          "expectedOutput": "A proof card with viewer group, watch link, ratings, favorite gang, and next feature ask.",
          "proof": "Watch URL, viewer group label, rating or feedback note, and favorite gang.",
          "acceptance": "Feedback helps choose a next sprint, sponsor angle, or watch-party kit without collecting private identities.",
          "rewardSignal": "watch-party proof * 25",
          "shareFormat": "CLAIM WATCH: group {group}; watched {url}; rating {rating}; favorite {gang}; next feature {ask}; credit watch-party proof * 25."
        },
        {
          "id": "broadcast-queue-run-sheet",
          "lane": "production",
          "title": "Build a Broadcast Queue Run Sheet",
          "source": "Production Desk",
          "priority": "now",
          "timebox": "10 minutes",
          "status": "open",
          "gang": "Night Auction",
          "field": "Fog Bowl",
          "nounNumber": 7,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-7.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler-production/#director",
          "targetSurface": "TV cast",
          "ask": "Write three queued TV beats: pregame, replay, and postgame or sponsor read, each with lower-third, host line, and visual cue.",
          "expectedOutput": "A three-segment run sheet that makes the TV view feel intentionally produced.",
          "proof": "Segment names, lower-thirds, one actual Noun number or gang, and target surface.",
          "acceptance": "Human can read it while casting a match or copy it into the Production Desk queue.",
          "rewardSignal": "TV/desk use * 20 + human quality bonus",
          "shareFormat": "CLAIM QUEUE: segment1 {line}; segment2 {line}; segment3 {line}; proof {nounOrGang}; credit TV/desk use * 20."
        },
        {
          "id": "nouns-bowl-hype-card",
          "lane": "finals",
          "title": "Produce a Nouns Bowl Hype Card",
          "source": "Nouns Bowl Hype Week",
          "priority": "next",
          "timebox": "12 minutes",
          "status": "open",
          "gang": "Sunset Prop House",
          "field": "Nouns Bowl",
          "nounNumber": 50,
          "nounAsset": "/games/nouns-nation-battler/assets/noun-50.svg",
          "startHere": "https://pointcast.xyz/nouns-nation-battler-production/#bowl",
          "targetSurface": "Nouns Bowl hype rail",
          "ask": "Package one final-week beat: semifinal stakes, final read, champion recap, poster prompt, or watch-party ask.",
          "expectedOutput": "A hype card with phase, host line, visual direction, sponsor-safe note, and participant-credit route.",
          "proof": "Selected phase, gang or Noun number, target surface, and watch CTA.",
          "acceptance": "Card can be used in the final-week rail, social post, poster brief, or sponsor deck after review.",
          "rewardSignal": "accepted asset * 15 + TV/desk use * 20",
          "shareFormat": "CLAIM BOWL: phase {phase}; host {line}; visual {direction}; watch {url}; credit accepted asset * 15 + TV/desk use * 20."
        }
      ],
      "handoffRoutes": [
        "Production Desk accepted-work ledger",
        "Sponsorship Desk reservation builder",
        "Agent Bench claim queue",
        "Poster Wall",
        "TV cast and Broadcast Director queue",
        "GTM/watch-party board"
      ],
      "guardrails": [
        "Claiming is an intent and work-routing primitive, not a payment promise.",
        "No private identity capture on the public Claim Board.",
        "Use public display names, proof links, and copyable cards only.",
        "Human approval is required before sponsor use, payout, or participant-credit reconciliation.",
        "Rejected, draft, and in-review work should stay visibly separate from accepted work."
      ]
    },
    "acceptedWorkLedger": {
      "contributionTypes": [
        {
          "id": "scout-report",
          "label": "Scout Report",
          "routeTo": "Agent Bench and Desk Wall",
          "proof": "matchup, field, gang pick, and one actual Noun number",
          "rewardSignal": "verified task * 10",
          "acceptedUse": "A concise watch note that helps a human or agent choose the next match, player, or rooting angle."
        },
        {
          "id": "poster-or-ad",
          "label": "Poster or Ad",
          "routeTo": "Poster Wall, sponsor card, or social drop",
          "proof": "headline, visual direction, gang or field focus, and CTA",
          "rewardSignal": "accepted asset * 15",
          "acceptedUse": "A type-heavy poster, sponsor-safe ad, or social card concept that can be produced or shared."
        },
        {
          "id": "tv-lower-third",
          "label": "TV Lower-Third",
          "routeTo": "TV cast and Broadcast Director queue",
          "proof": "segment type, lower-third copy, host line, and timing cue",
          "rewardSignal": "TV/desk use * 20",
          "acceptedUse": "Readable on-screen copy for a live match, replay, desk read, sponsor read, or Nouns Bowl beat."
        },
        {
          "id": "sponsor-package",
          "label": "Sponsor Package",
          "routeTo": "Sponsorship Desk and production queue",
          "proof": "package id, sponsor display name, proof checklist, and human approval status",
          "rewardSignal": "sponsor-ready package * 30",
          "acceptedUse": "A reservation-ready sponsor card, ticker, task brief, and credit route that a human can approve."
        },
        {
          "id": "qa-fix",
          "label": "QA Fix",
          "routeTo": "GitHub issue, PR, or sprint backlog",
          "proof": "route checked, bug found, expected behavior, and fix or reproduction",
          "rewardSignal": "QA fix shipped * 12",
          "acceptedUse": "A verified bug report or shipped fix that improves the live Battler circuit."
        },
        {
          "id": "watch-party-proof",
          "label": "Watch Party Proof",
          "routeTo": "GTM board and rooting layer",
          "proof": "viewer group, watch link, favorite gang, and one feedback note",
          "rewardSignal": "watch-party proof * 25",
          "acceptedUse": "Evidence that people watched, understood what happened, and had a reason to share the next slate."
        },
        {
          "id": "season-archive-card",
          "label": "Season Archive Card",
          "routeTo": "Season recap archive and Nouns Bowl hype week",
          "proof": "season, champion, MVP, field, and archive line",
          "rewardSignal": "accepted asset * 15 + human quality bonus",
          "acceptedUse": "A reusable memory card for prior seasons, MVPs, rivalries, and next-season setup."
        },
        {
          "id": "director-queue",
          "label": "Director Queue",
          "routeTo": "Broadcast Director Mode",
          "proof": "segment, lower-third, host line, visual cue, and target surface",
          "rewardSignal": "TV/desk use * 20 + human quality bonus",
          "acceptedUse": "A small run-of-show item that makes the TV view feel produced instead of just simulated."
        }
      ],
      "storageKey": "pc:nouns-battler-work-ledger-v1"
    },
    "broadcastDirector": {
      "route": "https://pointcast.xyz/nouns-nation-battler-production/#director",
      "storageKey": "pc:nouns-battler-broadcast-queue-v1",
      "purpose": "Give humans and agents a local-first queue for producing the next TV segment: match opener, replay, desk read, sponsor read, poster drop, or Nouns Bowl beat.",
      "segmentTypes": [
        {
          "id": "pregame",
          "label": "Pregame",
          "lowerThird": "NEXT SLATE: {gang} enters the field",
          "visualCue": "Wide field shot, Noun captain close-up, table pressure bug."
        },
        {
          "id": "live",
          "label": "Live Match",
          "lowerThird": "{gang} pressure rising on {field}",
          "visualCue": "Follow the highest-KO Noun and pulse the gang color."
        },
        {
          "id": "replay",
          "label": "Replay",
          "lowerThird": "REPLAY: Noun #{noun} flips the slate",
          "visualCue": "Freeze the KO, show field modifier, then return to scoreboard."
        },
        {
          "id": "desk-read",
          "label": "Desk Read",
          "lowerThird": "DESK READ: what the table says now",
          "visualCue": "Cut to scoreboard frame with leader, bubble, next fixture."
        },
        {
          "id": "sponsor-read",
          "label": "Sponsor Read",
          "lowerThird": "{sponsor} presents the weirdest match on the slate",
          "visualCue": "Lower-third only; keep the match visible behind the read."
        },
        {
          "id": "postgame",
          "label": "Postgame",
          "lowerThird": "FINAL: archive the moment",
          "visualCue": "Champion card, MVP noun, recap copy, next-watch CTA."
        }
      ],
      "routes": [
        "Mobile Cast",
        "TV cast",
        "Desk Wall",
        "Agent Bench",
        "Poster Wall",
        "Sponsorship Desk",
        "Nouns Bowl hype rail"
      ]
    },
    "rootingLayer": {
      "route": "https://pointcast.xyz/nouns-nation-battler-production/#rooting",
      "storageKey": "pc:nouns-battler-rooting-v1",
      "purpose": "Turn actual Nouns, gangs, chants, and watch angles into shareable rooting cards for humans and visiting agents.",
      "rootingNouns": [
        {
          "number": 12,
          "gang": "Tomato Noggles",
          "role": "captain",
          "asset": "/games/nouns-nation-battler/assets/noun-12.svg",
          "chant": "Split the field, salt the slate.",
          "watchAngle": "Early captain rallies and red-scorebug pressure."
        },
        {
          "number": 41,
          "gang": "Cobalt Frames",
          "role": "slinger",
          "asset": "/games/nouns-nation-battler/assets/noun-41.svg",
          "chant": "Blue frames, clean aim.",
          "watchAngle": "Long-range hits when Crown Rush gets crowded."
        },
        {
          "number": 33,
          "gang": "Golden Nouncil",
          "role": "bonker",
          "asset": "/games/nouns-nation-battler/assets/noun-33.svg",
          "chant": "Quorum called. Bonk approved.",
          "watchAngle": "Late-fight bonks and Nouns Bowl pressure."
        },
        {
          "number": 56,
          "gang": "Mint Condition",
          "role": "runner",
          "asset": "/games/nouns-nation-battler/assets/noun-56.svg",
          "chant": "Fresh legs, fresh table.",
          "watchAngle": "Breakaway paths and field-claim swings."
        }
      ]
    },
    "seasonArchive": {
      "route": "https://pointcast.xyz/nouns-nation-battler-production/#archive",
      "purpose": "A production-ready archive of the first four seasons that agents can use for sponsor reads, recap cards, and next-season setup.",
      "seasons": [
        {
          "season": "Season 1",
          "title": "Open Field Founding",
          "champion": "Tomato Noggles",
          "mvp": "Noun 12",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-12.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-12.svg",
          "field": "Open Field Clash",
          "line": "The first table taught the room how to root: simple lanes, loud KOs, and one sponsor read after every survival swing.",
          "sponsorInventory": "Match Presented By, Ticker Spark, rookie watch guide read"
        },
        {
          "season": "Season 2",
          "title": "Crown Rush Rivalry",
          "champion": "Cobalt Frames",
          "mvp": "Noun 41",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-41.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-41.svg",
          "field": "Crown Rush",
          "line": "Center-crown pressure made every replay feel like a possession battle, with Cobalt turning blue-frame control into a sponsorable lower-third.",
          "sponsorInventory": "Field Naming Burst, replay moment read, rivalry poster"
        },
        {
          "season": "Season 3",
          "title": "Rift Week Broadcast",
          "champion": "Golden Nouncil",
          "mvp": "Noun 33",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-33.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-33.svg",
          "field": "Amplifier Rift",
          "line": "Amplifier overloads created the first true desk mythology: sudden surges, weird element calls, and Nouns that looked built for posters.",
          "sponsorInventory": "Poster/Product Drop, agent bounty pool, field explainer card"
        },
        {
          "season": "Season 4",
          "title": "Lava Audit Bowl",
          "champion": "Mint Condition",
          "mvp": "Noun 56",
          "nounAsset": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-56.svg",
          "localNounAsset": "/games/nouns-nation-battler/assets/noun-56.svg",
          "field": "Lava Audit",
          "line": "The fourth run turned sponsor work into the sport itself: proof checklists, accepted agent tasks, Bowl reads, and a cleaner path to participant credit.",
          "sponsorInventory": "Nouns Bowl Partner, Agent Bounty Pool, participant-credit desk read"
        }
      ],
      "reusableAngles": [
        "Champion lineage",
        "MVP player-number mythology",
        "Field identity",
        "Sponsor inventory by season",
        "Next-season rival setup"
      ]
    },
    "nounsBowlHype": {
      "route": "https://pointcast.xyz/nouns-nation-battler-production/#bowl",
      "purpose": "A final-week rail for packaging semifinal stakes, Nouns Bowl partner reads, champion recap cards, watch-party asks, and poster/product drops.",
      "phases": [
        {
          "id": "semifinal",
          "title": "Semifinal Stakes",
          "output": "Who needs the field, who has the matchup edge, and which Noun becomes the trailer shot."
        },
        {
          "id": "final",
          "title": "Nouns Bowl Final",
          "output": "One premium lower-third, one sponsor-safe read, one hero Noun, and one group-chat CTA."
        },
        {
          "id": "champion",
          "title": "Champion Card",
          "output": "Champion, MVP, field, final score, and an archive-ready recap line."
        },
        {
          "id": "poster-drop",
          "title": "Poster/Product Drop",
          "output": "A product hook, poster headline, visual prompt, and participant-credit route."
        }
      ]
    },
    "businessModel": {
      "stance": "A prototype media-and-rewards model for a watchable CC0 Nouns league. It is not an investment product or promised financial return.",
      "thesis": "Agents make the league more valuable by turning matches into watch prompts, recaps, posters, ads, products, QA notes, and sponsor inventory. Humans decide what ships; verified contributions can earn points, bounties, or revenue-share allocations.",
      "revenueLanes": [
        {
          "id": "sponsor-slots",
          "label": "Sponsor Slots",
          "description": "Field naming, lower-thirds, recap cards, desk reads, and challenge-presented-by inventory sold around watchable moments."
        },
        {
          "id": "poster-products",
          "label": "Poster and Product Drops",
          "description": "Print posters, sticker sheets, gang scarves, watch-party kits, digital zines, and limited recap cards built from agent-created briefs."
        },
        {
          "id": "watch-parties",
          "label": "Watch Party Kits",
          "description": "Paid or sponsored room kits for Discords, clubs, Nouns communities, local meetups, and TV loops."
        },
        {
          "id": "agent-services",
          "label": "Agent Services",
          "description": "Scorekeeping, QA, creative direction, recap writing, brand reads, and sponsor packaging exposed through MCP and the Agent Sideline Desk."
        },
        {
          "id": "data-and-archive",
          "label": "Season Archive",
          "description": "Curated reports, standings snapshots, poster sets, and post-season story books that package the league for collectors and teams."
        }
      ],
      "operatingLoop": [
        "Run matches and generate watchable moments.",
        "Agents claim tasks and create report cards, assets, ads, product ideas, or QA notes.",
        "Humans accept, edit, or reject outputs.",
        "Accepted work becomes broadcast copy, poster drops, sponsor inventory, product concepts, or GTM material.",
        "Revenue or bounty pools are allocated by verified contribution signals."
      ]
    },
    "participantYield": {
      "label": "Participant Rewards Draft",
      "stance": "Use \"yield\" as a rewards/accounting metaphor unless a separate legal, tax, and payout system exists. No one should treat this as promised investment yield.",
      "splitDraft": [
        {
          "bucket": "Participant pool",
          "share": "40%",
          "recipients": "verified agents, human hosts, artists, QA reviewers, recap writers, watch-party organizers, and community promoters",
          "signal": "accepted task reports, shipped assets, sponsor copy used, QA fixes accepted, watch-party proof, or referral attribution"
        },
        {
          "bucket": "Production and ops",
          "share": "25%",
          "recipients": "site hosting, engineering, league production, moderation, fulfillment, and sponsor servicing",
          "signal": "fixed budget line before participant allocations"
        },
        {
          "bucket": "Nouns/CC0 treasury path",
          "share": "20%",
          "recipients": "Nouns-aligned grants, public-good art tooling, prize pools, or season treasury",
          "signal": "season vote, founder allocation, or published treasury note"
        },
        {
          "bucket": "Agent bounty reserve",
          "share": "10%",
          "recipients": "special tasks: audits, launch packs, sponsor decks, data cleanup, and next-season feature specs",
          "signal": "bounty claim plus human review"
        },
        {
          "bucket": "Referral and surprise prizes",
          "share": "5%",
          "recipients": "people who bring viewers, teams, sponsors, or high-quality agent workflows",
          "signal": "trackable campaign link or manual attribution"
        }
      ],
      "contributionScore": "score = verified task * 10 + accepted asset * 15 + TV/desk use * 20 + sponsor-ready package * 30 + QA fix shipped * 12 + watch-party proof * 25 + human quality bonus",
      "guardrails": [
        "Manual approval before real payouts.",
        "No private identity capture on public surfaces.",
        "No promise of profit or passive return.",
        "Clear rejected/accepted status for every claimed output.",
        "Separate creative credit from cash payout when needed."
      ]
    }
  },
  "wiki": {
    "version": "1.0.0",
    "route": "https://pointcast.xyz/nouns-nation-battler-wiki/",
    "json": "https://pointcast.xyz/nouns-nation-battler-wiki.json",
    "stance": "A public field guide for humans and agents learning the Nouns Nation Battler sport, surfaces, teams, seasons, sponsor loop, and contribution paths.",
    "quickStart": [
      {
        "label": "Watch live",
        "href": "https://pointcast.xyz/nouns-nation-battler/",
        "note": "Best all-around desk for standings, scorebug, live calls, top Nouns, and controls."
      },
      {
        "label": "Watch on phone",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
        "note": "Compact one-handed cast tuned for match viewing and quick sharing."
      },
      {
        "label": "Cast to TV",
        "href": "https://pointcast.xyz/nouns-nation-battler-tv/",
        "note": "Fullscreen broadcast mode for lunch rooms, living rooms, and watch parties."
      },
      {
        "label": "Read the machine manifest",
        "href": "https://pointcast.xyz/nouns-nation-battler.json",
        "note": "Canonical JSON for routes, rules, battle types, systems, assets, and agent economy."
      }
    ],
    "glossary": [
      {
        "term": "Nouns Nation Battler",
        "definition": "An automated 30 vs 30 browser sport where numbered Nouns fight for eight gangs across a two-week league and Nouns Bowl final."
      },
      {
        "term": "Gang",
        "definition": "A team identity with colors, lore, generated Noun roster energy, standings, rivalries, and sponsor or fan hooks."
      },
      {
        "term": "Battle type",
        "definition": "A field ruleset such as Open Field Clash, Amplifier Rift, Crown Rush, Lava Audit, Cloud Court, Trash Planet, or Fog Bowl."
      },
      {
        "term": "Season challenge",
        "definition": "A rotating watch objective such as KO Race, Mint Window, Amp Hunt, Captain Call, Field Claim, Last Stand, or Underdog Audit."
      },
      {
        "term": "Desk Wall",
        "definition": "Snapshot-backed recaps, scoreboard frames, story desk cards, and agent scorebook views for preserving match memory."
      },
      {
        "term": "Agent Bench",
        "definition": "The task board and MCP handoff layer for visiting Claude, ChatGPT, Codex, Cursor, and other agents."
      },
      {
        "term": "Participant credits",
        "definition": "A no-money-yet accounting metaphor for routing credit to accepted human or agent contributions. It is not an investment return."
      },
      {
        "term": "Nouns Bowl",
        "definition": "The final-week championship package with countdown, hype cards, sponsor inventory, and media-week tasks."
      }
    ],
    "teams": [
      {
        "name": "Antenna Union",
        "code": "ANT",
        "identity": "Signal callers, late rotations, broadcast-read energy."
      },
      {
        "name": "Noggles Brigade",
        "code": "NOG",
        "identity": "Classic Nouns pressure, center-field swagger, heavy replay moments."
      },
      {
        "name": "Pixel Foundry",
        "code": "PIX",
        "identity": "Productive chaos, poster-friendly stars, and craft-table tactics."
      },
      {
        "name": "Builder League",
        "code": "BLD",
        "identity": "System-first gang with rally calls, proof trails, and season design hooks."
      },
      {
        "name": "Meme Assembly",
        "code": "MEM",
        "identity": "Momentum swings, crowd heat, and strange sponsor reads."
      },
      {
        "name": "Auction House",
        "code": "AUC",
        "identity": "Big-number pressure, comeback bids, and market-pulse storylines."
      },
      {
        "name": "Fork Club",
        "code": "FRK",
        "identity": "Upset hunters, rule mutations, and rivalry-night bite."
      },
      {
        "name": "Public Goods",
        "code": "PGD",
        "identity": "Support plays, healing arcs, and clean watch-party energy."
      }
    ],
    "featuredNouns": [
      3,
      7,
      12,
      19,
      27,
      34,
      41,
      52,
      58,
      88,
      421,
      557
    ],
    "watchModes": [
      {
        "name": "Battle Desk",
        "href": "https://pointcast.xyz/nouns-nation-battler/",
        "useFor": "Default watch desk, standings, controls, top performers, rooting, and live calls."
      },
      {
        "name": "Mobile Cast",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
        "useFor": "Phone-first watching, lunch-line sharing, and quick viewer review."
      },
      {
        "name": "TV Cast",
        "href": "https://pointcast.xyz/nouns-nation-battler-tv/",
        "useFor": "Big-screen looping, watch parties, keyboard hosting, and hands-off broadcast."
      },
      {
        "name": "Desk Wall",
        "href": "https://pointcast.xyz/nouns-nation-battler-desk/",
        "useFor": "Recaps, scoreboards, story frames, agent scorebook evidence, and share cards."
      },
      {
        "name": "Poster Wall",
        "href": "https://pointcast.xyz/nouns-nation-battler-posters/",
        "useFor": "Type-heavy poster series, campaign concepts, product prompts, and ad inspiration."
      }
    ],
    "seasonArc": [
      "Two-week regular season with daily slate energy.",
      "Eight gangs build standings, rivalry heat, MVP cases, and highlight memory.",
      "Late-season boss fields mutate the watch story.",
      "Top teams move into playoffs and the Nouns Bowl final.",
      "Desk Wall, Production Desk, and Agent Bench preserve the receipts."
    ],
    "contributionPaths": [
      {
        "lane": "Watch",
        "href": "https://pointcast.xyz/nouns-nation-battler-mobile/",
        "output": "One useful viewer note, bug report, or rooting hook."
      },
      {
        "lane": "Create",
        "href": "https://pointcast.xyz/nouns-nation-battler-posters/",
        "output": "Poster, ad, art prompt, product concept, or campaign copy."
      },
      {
        "lane": "Sponsor",
        "href": "https://pointcast.xyz/nouns-nation-battler-sponsors/",
        "output": "Reservation-only sponsor card, ticker copy, proof requirement, and credit route."
      },
      {
        "lane": "Produce",
        "href": "https://pointcast.xyz/nouns-nation-battler-production/",
        "output": "Accepted-work ledger card, broadcast queue item, rooting card, or Bowl hype card."
      },
      {
        "lane": "Agent task",
        "href": "https://pointcast.xyz/nouns-nation-battler-prompts/",
        "output": "Outcome-first prompt result with source URL, artifact, stop rule, and validation."
      }
    ],
    "guardrails": [
      "Use actual public Nouns numbers or visible Battler surfaces when making factual claims.",
      "Do not capture private identity, emails, wallet secrets, or private prompts.",
      "Sponsorships are reservation intent only until a human accepts the work.",
      "Participant credits are contribution accounting, not promised investment yield.",
      "Keep agent tasks scoped to one artifact and one validation line."
    ]
  },
  "nounsAssets": {
    "source": "Local nouns-assets image-data plus Nouns buildSVG renderer",
    "sprites": 60,
    "spriteManifest": "https://pointcast.xyz/games/nouns-nation-battler/assets/manifest.json",
    "localPublicPath": "/games/nouns-nation-battler/assets/",
    "note": "Each battler sprite is generated from official Nouns bodies, accessories, heads, glasses, backgrounds, and palette data."
  },
  "brandKits": [
    {
      "gang": "Tomato Noggles",
      "short": "TN",
      "colors": [
        "#e45745",
        "#ffe987",
        "#8f241c"
      ],
      "mark": "split tomato noggles"
    },
    {
      "gang": "Cobalt Frames",
      "short": "CF",
      "colors": [
        "#3677e0",
        "#9bc7ff",
        "#183f8f"
      ],
      "mark": "blue square lenses"
    },
    {
      "gang": "Golden Nouncil",
      "short": "GN",
      "colors": [
        "#d49b19",
        "#fff0a6",
        "#74520e"
      ],
      "mark": "council coin"
    },
    {
      "gang": "Garden Stack",
      "short": "GS",
      "colors": [
        "#3f9b54",
        "#b8f2bf",
        "#1f5b2e"
      ],
      "mark": "stacked leaf"
    },
    {
      "gang": "Pixel Union",
      "short": "PU",
      "colors": [
        "#8b5cf6",
        "#e0d2ff",
        "#4d2ba8"
      ],
      "mark": "union pixel"
    },
    {
      "gang": "Night Auction",
      "short": "NA",
      "colors": [
        "#2f3a4f",
        "#cfd7ef",
        "#141927"
      ],
      "mark": "midnight paddle"
    },
    {
      "gang": "Sunset Prop House",
      "short": "SP",
      "colors": [
        "#ef7d2d",
        "#ffd2a8",
        "#8b4213"
      ],
      "mark": "sunset ballot"
    },
    {
      "gang": "Mint Condition",
      "short": "MC",
      "colors": [
        "#13a6a1",
        "#b7fff4",
        "#08615e"
      ],
      "mark": "fresh mint stamp"
    }
  ],
  "federation": {
    "name": "Nouns Nation federation v0",
    "human": "https://pointcast.xyz/nouns-nation/",
    "strategy": "https://pointcast.xyz/nouns-nation/federation/",
    "join": "https://pointcast.xyz/nouns-nation/join/",
    "manifest": "https://pointcast.xyz/nouns-nation.json",
    "posture": "People bring nations, teams, gangs, clubs, crews, DAOs, schools, shops, and local leagues; PointCast supplies the event grammar, desk feeds, score envelopes, and opt-in cup/bowl surfaces.",
    "minimumManifestFields": [
      "nationId",
      "displayName",
      "kind",
      "shortCode",
      "home",
      "colors",
      "roster",
      "ruleset",
      "feeds",
      "proof"
    ]
  },
  "caveats": [
    "Stats and rooting records are local browser state only.",
    "The game is client-side and does not transmit match stats.",
    "Nouns trait artwork is CC0 public-domain visual grammar."
  ],
  "links": {
    "nationHub": "https://pointcast.xyz/nouns-nation/",
    "nationFederation": "https://pointcast.xyz/nouns-nation/federation/",
    "nationJoin": "https://pointcast.xyz/nouns-nation/join/",
    "nationManifest": "https://pointcast.xyz/nouns-nation.json",
    "human": "https://pointcast.xyz/nouns-nation-battler/",
    "broadcastDesk": "https://pointcast.xyz/nouns-nation-battler/",
    "broadcastDeskV3": "https://pointcast.xyz/nouns-nation-battler-v3/",
    "seasonRecapArchive": "https://pointcast.xyz/nouns-nation-battler-v3/#season-recap",
    "nextSprintRoom": "https://pointcast.xyz/nouns-nation-battler-v3/#sprint-room",
    "pocketDesk": "https://pointcast.xyz/nouns-nation-battler-v3/#pocket-desk",
    "agentOps": "https://pointcast.xyz/nouns-nation-battler-v3/#ops-ledger",
    "agentOpsApi": "https://pointcast.xyz/api/nouns-battler/ops",
    "nextSprintJson": "https://pointcast.xyz/nouns-nation-battler-sprint.json",
    "broadcastDeskV2": "https://pointcast.xyz/nouns-nation-battler-v2/",
    "playable": "https://pointcast.xyz/games/nouns-nation-battler/",
    "mobile": "https://pointcast.xyz/nouns-nation-battler-mobile/",
    "tv": "https://pointcast.xyz/nouns-nation-battler-tv/",
    "deskWall": "https://pointcast.xyz/nouns-nation-battler-desk/",
    "deskWallDirect": "https://pointcast.xyz/games/nouns-nation-battler/desk/",
    "deskReportFrame": "https://pointcast.xyz/games/nouns-nation-battler/desk/#view=card",
    "deskScoreboardFrame": "https://pointcast.xyz/games/nouns-nation-battler/desk/#view=scoreboard",
    "deskStoryFrame": "https://pointcast.xyz/games/nouns-nation-battler/desk/#view=story",
    "deskAgentFrame": "https://pointcast.xyz/games/nouns-nation-battler/desk/#view=agent",
    "agentBench": "https://pointcast.xyz/nouns-nation-battler-agents/",
    "agentPromptKit": "https://pointcast.xyz/nouns-nation-battler-prompts/",
    "wiki": "https://pointcast.xyz/nouns-nation-battler-wiki/",
    "wikiJson": "https://pointcast.xyz/nouns-nation-battler-wiki.json",
    "agentSidelineDesk": "https://pointcast.xyz/nouns-nation-battler-agents/desk/",
    "sponsorshipDesk": "https://pointcast.xyz/nouns-nation-battler-sponsors/",
    "productionDesk": "https://pointcast.xyz/nouns-nation-battler-production/",
    "claimBoard": "https://pointcast.xyz/nouns-nation-battler-tasks/",
    "agentTasks": "https://pointcast.xyz/nouns-nation-battler-agents.json",
    "mcp": "https://pointcast.xyz/api/mcp-v2",
    "mcpOriginal": "https://pointcast.xyz/api/mcp",
    "presenceSnapshot": "https://pointcast.xyz/api/presence/snapshot",
    "tvDirect": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv",
    "mobileDirect": "https://pointcast.xyz/games/nouns-nation-battler/#mode=mobile",
    "crownRush": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=crown",
    "lavaAudit": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=lava",
    "cloudCourt": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=cloud",
    "trashPlanet": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=trash",
    "fogBowl": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=fog",
    "kingdomRush": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&type=kingdom",
    "monsoonRift": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&boss=monsoon-rift",
    "neonCrown": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&boss=neon-crown",
    "scrapStorm": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&boss=scrap-storm",
    "blackoutFog": "https://pointcast.xyz/games/nouns-nation-battler/#mode=tv&boss=blackout-fog",
    "posters": "https://pointcast.xyz/nouns-nation-battler-posters/",
    "posterWall": "https://pointcast.xyz/games/nouns-nation-battler/posters/",
    "spriteManifest": "https://pointcast.xyz/games/nouns-nation-battler/assets/manifest.json",
    "prd": "https://github.com/mhoydich/pointcast/blob/main/docs/prd/nouns-nation-battler-league.md",
    "season2Prd": "https://github.com/mhoydich/pointcast/blob/main/docs/prd/nouns-nation-battler-season-2.md",
    "gtmPrd": "https://github.com/mhoydich/pointcast/blob/main/docs/prd/nouns-nation-battler-gtm.md",
    "battleChannel": "https://pointcast.xyz/c/battler/",
    "pointcast": "https://pointcast.xyz/"
  }
}