{ "_readme": "Drop-in art manifest. Every entry has path: null until painted — the game renders procedurally via WolfensteinArt.js until then. Fill in a path and it lazy-loads automatically via assetManifest.js's wolfenstein entry; no code changes needed. sheets.walls expects a 4-column strip (one column per wall type in WolfensteinArt.WALL_COLORS) so WolfensteinView's per-column drawImage can sample a texture-x slice per wall type.", "sheets": { "walls": { "key": "wolfenstein-walls", "path": "assets/images/wolfenstein/walls.png", "frameWidth": 64, "frameHeight": 64 }, "guard": { "key": "wolfenstein-guard-sheet", "path": null, "frameWidth": 128, "frameHeight": 128 }, "doors": { "key": "wolfenstein-doors", "path": "assets/images/wolfenstein/doors.png", "frameWidth": 64, "frameHeight": 64 } }, "artwork": [ { "key": "wolfenstein-item-pistol", "path": null }, { "key": "wolfenstein-item-ammo", "path": null }, { "key": "wolfenstein-item-health", "path": null }, { "key": "wolfenstein-bullet", "path": null }, { "key": "wolfenstein-muzzle", "path": null }, { "key": "wolfenstein-title", "path": null } ] }