# V2 Out-of-Game Web Shell

V2 no longer owns a standalone `apps/v2/web/` marketing stack. The fighting-game
web entry is the `/v2` route in `apps/oshun/web`, surfaced as a V2 tile on
`/explore` inside the shared Lilith/Oshun shell.

## Runtime Contract

| Surface       | Implementation                                     |
| ------------- | -------------------------------------------------- |
| Explore tile  | `apps/oshun/web/src/components/v2/V2ShellTile.tsx` |
| Route surface | `apps/oshun/web/src/app/v2/page.tsx`               |
| Shell model   | `apps/oshun/web/src/v2/shell-tile.ts`              |
| E2E smoke     | `apps/oshun/web/e2e/v2-shell-tile.spec.ts`         |

The model imports the actual Oshun surfaces instead of the historical monolithic
SDK:

- `@oshun/shell-core` for primary shell entry points and route hrefs.
- `@oshun/auth-client` for shell-level feature-gating rules.
- `@oshun/developer-portal` for the V2 developer-doc registry article.
- `@oshun/persistence` for contract-backed persistence summaries.

## Stack Decision

`apps/oshun/web` remains the only web runtime. Standalone Sanity and Contentful
content stacks are not V2 dependencies for this surface. If V2 needs public
content, it must enter through the existing Oshun shell data plane or the
developer-portal/documentation packages named above.

## Verification

The migration is guarded by:

- `apps/oshun/web/src/components/v2/__tests__/V2ShellTile.test.tsx`
- `apps/oshun/web/e2e/v2-shell-tile.spec.ts`
- `V2/ue/Tools/check-v2-web-shell-tile.py`

The checker validates the route, tile, package dependencies, docs, and CI
workflow wiring.
