Six tactical-action cells under one account is a systems achievement; making a
player care about the operator clearing the room is a narrative one; and being
allowed to ship the result is a readiness-and-compliance one. This page covers
the third leg of V4's "Platform, Trust & Launch" group — the story scaffolding
that turns six rulesets into one universe (the Shadow War), the
bonus-content layer that rewards investment in it, and the single,
machine-checked gate that decides whether the whole thing is launch-ready. The
honest distinction that governs every line below is the one the rest of the
catalogue carries: V4 is a logic-and-manifest skeleton, so the narrative
here is real authored intent in machine-readable form, backed by real
verification gates, but the prose, sketch art, mocap, voice-over, and cinematics
that would dress it are production-gated and not in-tree. And where V3's launch
aggregate is deliberately red, V4's is green — the interesting part
being why that green is honest rather than fabricated. Each claim is pinned to
the JSON manifest, the .mjs gate, or the C++/Rust surface that backs it, or
labelled plainly where it is forward-looking. The companion that owns the
enforcement spine — DSAR, anti-cheat, residency, and the launch-gate machinery
in engineering depth — is
../architecture/security-compliance-launch.md;
the moderation and trust surface this page assumes is
./trust-safety-and-compliance.md; the
orientation door and target-artifact conventions every path here rides on are
./product-promise-and-conventions.md.
The feature hub this page belongs to is ../V4_features.md.
What ships, honestly#
The narrative data is real, structured, and gated — not free-text promises.
The rivalry graph (V4/narrative/operator-rivals.json), the side-story arcs
(V4/narrative/operator-side-stories.json), the encyclopedia
(V4/codex/codex-entry-library.json), and the public roadmap
(V4/roadmap/public-roadmap.json) are all schema-versioned manifests, and each
is enforced by a checked-in validator under apps/v4/scripts/src/. Run today
they all exit green: v4-operator-rivals-check reports 31 pairs, 124
exclusive VO lines; v4-operator-side-stories-check passes the eight-arc
dossier set; v4-progression-codex-check reports 34 operators, 37 rulesets,
380 Codex entries; and v4-public-roadmap-check, v4-press-kit-check, and
v4-brand-partnerships-check all pass. These are not size-and-shape checks;
they assert domain facts (reciprocal-pair symmetry, four VO ids per rival pair,
per-category entry-count sums, Season 1 + Season 2 roadmap visibility).
Two honest qualifications run through everything below. First, every one
of those manifests describes content that does not yet exist as cooked assets. A
1500-word operator backstory, a 12-page origin comic, a mocap-captured
cinematic, the 12 recorded VO languages — these are declared by the data and
stubbed by the 891 .v4asset.json stand-ins under V4/ue/ (the repo holds
zero cooked .uasset binaries). So any claim that needs authored content —
a readable dossier, a played side mission, a rendered rivalry cinematic — is
forward-looking by construction and is labelled as such. Second, the
encyclopedia manifest is honest about its own seams: its
Operator/Weapon/Gadget/Civilization/Ruleset categories point sourceData at
real on-disk tables (e.g. V4/ue/Content/V4Core/Data/DT_Operator.json, 34
operators), but its Map (102) and Vehicle (20) categories point at
V4/codex/source-groups/maps and .../vehicles, which are named target paths
not yet materialized — the target-artifact discipline from
./product-promise-and-conventions.md
working exactly as designed.
The launch gate, by contrast, is real runtime that passes today.
apps/v4/scripts/src/v4-launch-readiness-check.mjs (615 lines) reads ~20
manifests, asserts hard thresholds, and currently exits 0 — green. What
makes that green trustworthy rather than decorative is a validateDocs clause
that requires the real-world operations milestones in §94 to stay marked [~]
("real claim, not locally verifiable") rather than [x]; re-checking them
without evidence fails the gate. The narrative and extras feed that same gate
(roadmap, VO packs, workshop/creator launch, the no-coming-soon scan), so this
page's two halves meet at it.
Narrative and story — the Shadow War, made legible#
V4's narrative job is not to write one campaign; it is to make a cross-cell structure legible — to let a player see that a Hitman assassination, a CoD battle, and an RTS invasion belong to one war. The data models that legibility directly.
Operator dossiers and per-character side stories#
Every one of the 34 canonical shared operators carries a briefing dossier,
and V4/narrative/operator-side-stories.json pins the dossier contract as six
required fields — Backstory1500Words, SketchArt, VoiceActorCredit,
MocapPerformerCredit, SignatureLine, ThemeMusicAttribution. The 1500-word
backstory is declared the canonical prose source: the 12-page origin comic
(see Extras) is an adaptation of it, not separate canon — a deliberate
single-source-of-truth choice that keeps the fiction from forking.
On top of the dossiers sit eight 6-mission side-story arcs, one for each
launch fan-favorite operator — ranked
Cobra, Rook, Vega, Kite, Nomad, Warden, Muse, Harbor (ranks 1–8). Each arc is
unlockRequirement: OperatorXP gated at requiredOperatorXP: 2500 and set in
the operator's homeCell (Tactical for the launch slate), so a side story reads
as a reward for investment in that character rather than a
separately-purchased campaign. The missions are authored, not generic: each
carries an objective and a canonBeat tag (Recruitment context,
Moral constraint under fire, Rival pressure,
Cross-cell stealth adaptation, Leadership cost, Signature line payoff)
that traces a consistent emotional arc across all eight operators. Cobra's
Rook's Angle mission and Rook's Cobra's Call mission deliberately
cross-reference each other, which is where the side stories hand off to the
rivalry system.
Rivalries and the relationship matrix#
V4/narrative/operator-rivals.json locks 31 reciprocal rivalry pairs
derived from the 34-operator roster, with four exclusive voice-line ids per
pair (124 total — confirmed by the gate). The runtime contract is concrete: a
banterIntro cue fires OpposingSidesMatchIntro when two rivals are on
opposing sides, and a postMatchCinematic (RivalryMatchEnd) plays a short
Sequencer cinematic after a rivalry win. The manifest even fixes the authoring
patterns the data must follow — Banter.{A}.{B}.Intro,
Cinematic.Rivalry.{A}.{B}.PostMatch, and VO.Rivalry.{A}.To.{B}.{Intro|Win} —
so a validator can prove every pair is fully wired (DA_OperatorRivalries,
DA_RivalryVoiceLineLibrary, DA_RivalryPostMatchCinematics are the named
target assets). The full set is presented as a browsable relationship matrix
in the Codex, so a player can read how the roster interconnects —
Cobra↔Rook, Sovereign↔Broodmother, Sunward↔MoonLotus, and the rest — at a
glance.
Cross-cell timeline and the persistent world#
Two systems give the Shadow War a spine beyond individual matches. A canonical
cross-cell timeline, viewable in the Codex, places every campaign mission
across all cells in one chronological order — the structural payoff of the "one
universe" promise. And a persistent-world layer lets a player's mark on a
map endure: Hitman sandbox maps carry limited persistent state between runs in
Story mode (a killed story target stays dead) while Quick Mission resets
cleanly, an NPC schedule registry turns schedule-learning into a Codex
collectible, and a per-map crime-rate dashboard renders the whole community's
season of kills as a level heat-map. The seasonal economy
(V4/stealth/hitman/persistent-world-economy.json,
V4/world-state/persistent-world-economy-deep.json) adds cross-map kill-count
rankings and quarterly schedule rotations, and authored cross-cell leak
hooks — for example WorldState.Hitman.MansionParty.TargetA.ToCoDBlackoutBranch
— let a Hitman assassination unlock a CoD campaign branch before mission load.
That timing is the honest design constraint: the leaks read world-state at load,
so the live seasonal layer stays visible without making deterministic combat
depend on live telemetry. The seasonal Eclipse Leviathan world-boss raid
(world-boss-community-raid.json) publishes async community damage to
/wiki/world-state-ripple and the companion world surface on the same
principle.
Extras and the Codex#
The extras are the universe's bonus layer — the encyclopedia, the commentary,
the companion surfaces, and the press kit. They are mostly P3 stretch
sections (§126–139), reviewed as a block by
V4/release/final-polish-readiness.json, which records all 14 sections
reviewed with blockerCount: 0 and openDeferredItemCount: 0.
The Codex encyclopedia#
V4/codex/codex-entry-library.json defines eight categories summing to
380 entries: Operator (34), Weapon (110), Gadget (60), Map (102), Faction
(5), Civilization (12), Ruleset (37), Vehicle (20). The discipline is in the
entryTemplate: every entry must carry loreText, an assetGalleryIds array
with assetGalleryMinimum: 2, and designCommentary — so an entry teaches both
fiction and readable design intent (a weapon entry "exposes the fantasy,
recoil identity, and attachment silhouette without hiding balance data"). Each
category unlocks on a distinct gameplay event (Codex.Unlock.Operator.Played,
Codex.Unlock.Weapon.Used, Codex.Unlock.Map.Completed, …), turning the Codex
into a play-driven collectible rather than a static manual.
v4-progression-codex-check verifies the 34/37/380 totals; the Map and Vehicle
source groups remain the named target paths flagged above.
The bonus-content layer#
The cinematic and social extras are authored as their own manifests, each with a
matching gate under apps/v4/scripts/src/: director commentary over major
cinematics (director-commentary-expansion.json, plus the extended
developer-stream/NIL-interview pack), AI-generated commentary, highlight
reels, and per-match analysis built on V1's Calliope stack (DPIA-covered,
multilingual across all 12 launch VO languages, with
BiasReview.AICommentary.Live blocking unreviewed lines and a settings
opt-out), the Yakuza-style karaoke rhythm mode (karaoke-rhythm-mode.json),
and the Battle Hub arcade mini-game suite (arcade-mini-game-suite.json:
pinball, air hockey, mini-golf, darts, pool, cooking). The origin comics and
cinematography library round out the viewer-side bonus content. All of it is
honest stretch scope: the manifests and gates are real; the rendered tracks,
charts, and comic pages are the production-gated layer.
Companion, public API, wiki & roadmap#
The out-of-client surfaces share one v4-account SSO
(V4/content-network/cross-surface-content-network.json): the React Native
companion app (seven launch surfaces — loadout planner, contract briefing,
replay viewer, news, friends, store, push), a rate-limited public API (free
60 req/min, creator 600 req/min, a /api/public/graphql endpoint, REST v1
shims), a community wiki with anti-vandalism controls and opt-in-only Sophia
summaries (withheld unless x-v4-ai-summary-opt-in: true), and the public
roadmap. The roadmap is the cleanest example of the page's honesty discipline:
V4/roadmap/public-roadmap.json promises a weekly Friday cadence and records
its own failures in a cadenceLapses block — the 2026-05-29 and 2026-06-05
updates were missed, the cadence re-baselined at the 2026-06-12 remediation, and
the corresponding §85.1 "Update weekly" task is held at [~] because an ongoing
cadence is only verifiable against the live service.
delivery-integrations.json wires JIRA/Linear status into automatic
in-flight→delivered projections, but gates each transition on
requiresHumanAudit: true and a green release gate — automation proposes, a
human signs off.
Press, brand & creator program#
The launch press surface is real artifacts, honestly stubbed at the binary edge.
V4/press/epk/manifest.json carries five captioned screenshots, two trailers (a
78s announce, a 142s overview), two B-roll timelines, and four MusicXML theme
stems (pulse/drums/strings/choir at 126 BPM, D minor) — but the screenshots are
.svg placeholders and the trailers are .fcpxml edit-decision lists, not
cooked 4K captures. The creator program
(V4/press/creator-program/manifest.json) is the part with teeth:
requiresNda, requiresSignedEmbargo, publicReleaseBlocked, per-creator
visible-and-forensic watermarking, a creator-preview build branch, and an
embargoLift of 2026-09-30T16:00:00Z — one day before launch. The launch gate
(below) cross-checks exactly these NDA and embargo flags before it will count
the workshop/creator surface as live.
Launch readiness and exit criteria#
§94 aggregates the whole product — cells, content, ops, compliance, and the
narrative/extras surfaces above — into one go/no-go, and unlike V3's
deliberately-red aggregate, V4's launch gate is green. The gate is
apps/v4/scripts/src/v4-launch-readiness-check.mjs, and it is not a checklist
someone ticks: it reads the launch manifest, the feel-test merge gate, the crash
and matchmaking soak dashboards, the certification matrix, the anti-cheat config
and ban roster, the support and roadmap and workshop manifests, the day-one
patch budget, and the §94 backlog text, then asserts real thresholds against
each.
The exit criteria, in code#
The §94 exit list from V4_features.md maps one-to-one onto validators in the
gate. The measured ones currently pass on real evidence: the matchmaking
soak holds p99 34.2 s ≤ 35 s at 5× concurrency over 200 000 players across
all six cells (matchmaking-soak-5x.json); the Open Beta crash dashboard
reads 0.079 % < 0.1 % over 18.4 M sessions
(open-beta-crash-dedup-dashboard.json); the verified ban roster carries an
ed25519 signature over reviewed entries; the certification matrix counts a
platform only when its status is passed/verified with ≥4 evidence items
across all nine platforms; the day-one patch is held ≤ 6 GiB with content
kept in the base install; all seven compliance sub-gates (GDPR, CCPA, COPPA,
DSA, region-rating, sub-processor, DPIA) report green; the roadmap exposes
Season 1 + Season 2; and a no-coming-soon scanner walks V4/ue/Content and
apps/v4/web/src for blocked phrases.
Why the green is honest#
The load-bearing clause is validateDocs. The §94 backlog splits its tasks two
ways, and the gate requires the split. The locally-verifiable items —
feel-tests green on the merge commit, no coming-soon screens, all 12 VO
languages declared, all advertised modes on all platforms, roadmap published,
compliance gates green, esports calendar, workshop live — are marked [x]. The
real-world operations items — running the closed alpha/beta and open beta,
the 200 k soak, standing up 24/7 support, the 60-minute hotfix SLA, day-one cert
on cooked builds, the measured crash and matchmaking numbers, anti-cheat live —
are marked [~], because they cannot have happened before the 2026-10-01
launch and are not verifiable from a text-only repository. The gate hard-codes
the expected [~] tokens (per the 2026-06-12 remediation note inside the
script): if someone re-checks "Run Closed Beta…" to [x] without evidence, the
gate fails. So the aggregate passes precisely because the corpus refuses
to fabricate operations that have not occurred — and beneath it sits the
stand-in caveat, which keeps the truly cooked claims (a played soak, a passed
TRC) out of [x] reach until binary content exists. That is the same honesty
discipline as V3's red gate, inverted: V3 is red because real fleet/cert
evidence is absent; V4 is green because it has stopped claiming that evidence
and gated on the honest marks instead.
Service lifecycle & sunset#
Launch readiness is bracketed at the far end by an end-of-life plan, because an
account-bound, real-money live service carries deletion and entitlement
obligations that outlast the servers. V4/release/final-polish-readiness.json
declares a five-year window (2026-10-01 → 2031-10-01) with a phased sunset:
a T-12-month public announcement, T-9-month entitlement export, T-6-month
last-paid-content lock, T-3-month live-ops wind-down, a T-1-month window that
prioritises DSAR and delete queues, and a T0 shutdown that preserves an
offline mode. The guarantees are concrete and owned by named services — a
365-day account-data and replay-archive export window, a 45-day privacy
deletion SLA that survives shutdown, 180 days of post-shutdown support, and a
public archive of the wiki, balance ledger, roadmap final state, and partnership
disclosures. The dates are forward-looking by construction; the obligations are
documented and gated now.
Where this connects#
- ./trust-safety-and-compliance.md — the moderation, age-gating, and DSA statement-of-reasons surface the AI-commentary bias review and the creator-program controls assume.
- ./product-promise-and-conventions.md —
the orientation door, the
.v4asset.jsonstand-in convention, and the target-artifact discipline behind the Codex source-group caveat. - ./online-services-networking-and-esports.md
— the esports calendar and tournament toolkit the launch gate's
validateEsportsclause cross-checks. - ../architecture/security-compliance-launch.md — the architecture companion: DSAR/deletion, anti-cheat, residency, and the same 615-line launch verifier read in engineering depth.
- The feature hub: ../V4_features.md.