# V2 Content Cooking Architecture

`V2/ue/Build/Cooking/v2-content-cooking-architecture.json` defines the source
asset to cooked artifact pipeline used by the V2 build farm. It extends the
existing BuildGraph and `cook-all` wrappers instead of replacing them.

The architecture has six ordered stages:

- `discover-source-assets` writes a canonical source asset manifest.
- `normalize-and-fingerprint` records stable paths, import settings, platform
  profile, and SHA-256 content hashes.
- `build-dependency-graph` merges Unreal `AssetRegistry.bin` references with
  domain sidecars such as `*.v2deps.json`.
- `plan-platform-cook` expands source changes into platform-specific cook tasks.
- `execute-cook` runs BuildCookRun or a domain cooker and writes cooked output.
- `validate-and-report` verifies cooked loads, missing references, cook time,
  cache hit rate, and artifact size.

Dependency tracking is graph-first. Every node is keyed by canonical source URI,
every edge records source, target, kind, platform scope, and content hash, and
incremental recooks must walk the transitive closure so a texture change can
recook materials, meshes, and levels that depend on it. The graph evidence path
is `$(ArchiveRoot)/Cooking/dependency-graph.json`.

Platform profiles define optimization policy without hard-coding it into
individual cookers: `PCUltra`, `PCLow`, `PS5`, `XSX`, `XSS`, `Switch2`, and
`Mobile`. Each profile declares texture, mesh, and audio tiers so later texture,
mesh, audio, shader, animation, and level cookers can plug into the same cook
plan.

Cooked artifacts and cache evidence are rooted at
`$(UE_SHARED_DDC)/V2/CookedContent` and `$(ArchiveRoot)/Cooking`. The shared DDC
root remains `$(UE_SHARED_DDC)/V2/DDC`.

Required gates:

- `content-cooking-architecture-defined`
- `content-cooking-dependency-tracking-defined`
- `content-cooking-platform-profile-coverage`
- `content-cooking-cache-policy-defined`

The primary coverage metric is `cook.architecture.platform_profile_count`. The
CI validator is:

```bash
python3 V2/ue/Tools/check-v2-content-cooking-architecture.py
```
