# Peer Client assets

Authored exactly like the game modules' assets (see `game_2/CMakeLists.txt`
and `docs/PEER_CLIENT_PLATFORM.md` §1.6):

```text
client/assets/<containerId>/<resourceId>.<ext>
```

`.png` = texture, `.glb` = mesh, `.ttf` = font. A POST_BUILD step stages this
folder to `bin/<Config>/Client/assets`, and `StartupState` calls
`BuildAllPaks("assets")`, which packs every **numerically named** folder into
`assets/datNNN.pak` at runtime. `ClientApp::EnsureAssets` mounts container 1
if that pak exists.

## No font goes here

The shell's text uses the **operating system's UI font** — `segoeui.ttf` on
Windows, with Tahoma/Verdana/Arial as fallbacks; DejaVu/Liberation/Noto on
Linux. See `client/src/app/system_font.cpp` for the candidate list and
`ResourceManager::LoadFontFromFile` for the loader.

Two reasons: the client should look native, and packing a typeface would mean
redistributing it. If no readable font is found the shell still draws
completely — panels, buttons, the custom title bar and every caption button
are drawn from rects — and only text is skipped.

## What does belong here

Artwork, once it exists: game banners and icons, the Peer logo mark,
notification glyphs. Each under its own container id. Until then this folder
is empty of numeric containers, no pak is produced, and nothing is mounted —
which is why the mount is guarded rather than assumed.
