# Spritesheets > Full art brief — every sheet with dimensions, frame maps, and drawing > notes — lives in [`sprites.md`](../sprites.md) at the project root. Art is optional: any sheet that is missing (or too small for a requested frame) gets a procedurally generated placeholder baked in its entry's `color` from the config JSON, so the game always runs. ## Layout Every sheet is a **horizontal strip of square frames**, left to right. The `frame` field in the config JSON is the 0-based index into the strip. Frames are **192×192** (walls can override via `textureSize` in `walls.json`; baked output is always 192×192). Expected files (paths are what `src/config/*.json` references — change them there if you prefer a different arrangement): | File | Used by | Notes | | ----------------------------- | --------------- | ----- | | `assets/textures/walls.png` | `walls.json` | Opaque. Frame per wall id (frame 0 = Gray Brick, …) | | `assets/textures/overlays.png`| `overlays.json` | **Transparent PNG** — composited over wall textures | | `assets/sprites/items.png` | `items.json` | **Transparent PNG** — billboard props (plant, lamp, …) | | `assets/sprites/enemies.png` | `enemies.json` | **Transparent PNG** — one frame per enemy type for now | A 5-frame walls sheet is therefore 960×192; a 3-frame enemies sheet 576×192. You can also point different entries at different files — each unique `texture` path is loaded once and shared.