| Props from a sheet | extract_prop_pack.py --input <sheet> --rows R --cols C --labels a,b --output-dir <new> (--grid-rounding nearest, --auto-boxes, --boxes-file <json> --keep-canvas, --world-scale 3/8, --suggest-footprint ellipse); place by anchor_px (prop-pack-contract.md) |
| Terrain fills, overlays, iso or hex, Wang rows | extract_terrain_tiles.py --strict-qc (--layer overlay, --shape iso-diamond, --wang NAME=A/B:MASKS; --edge-policy seamless only for art meant to tile) |
| Platform caps and middles | extract_platform_strip.py --strict-qc (side-scroll-scenes.md) |
| Code-drawn autotiles, only on request | codeart2d autotile_build.py (seam-proven tileset manifest), then the exporters |
| A code-drawn playable map, only on request | codeart2d layout_build.py (writes map_bundle.v2), then map_nav.py check and the exporters |
| Draw order, contact anchors, placement audit | compose_layered_preview.py --base <png> --placements <json> --output <png> --report <json>; with --bundle <map_bundle.json> --debug-overlay --audit-out <json> look at both |
| Validate a playable map | map_bundle.py validate --bundle <b> (map_bundle.py hash fills sha256), then map_nav.py check --bundle <b> --output-dir <new> (--link each neighbour); review nav-debug.png; map_nav.py query tests one spot or move |
| Walk the map, check every route | build_scene_preview.py --bundle <b> --output-dir <new> --verify; attach scene-snapshot.json (scene-preview.md) |
| Export | export_tiled.py export --bundle <b> --output-dir <new> (--embedded-variant for Phaser); export_godot.py --bundle <b> --output-dir <new>; export_ldtk.py --bundle <b> --output-dir <new> (engine-maps.md) |
| Room chunks; side-scroll grammar | validate_chunks.py --chunks <json> --output-dir <new>; validate_layout.py --layout <json> --output-dir <new> |
| Parallax | validate_parallax.py --spec <plan> --report <qa.json> (declare camera.pivot and the aspects you ship); code-drawn layers on request: codeart2d parallax_build.py (parallax-backgrounds.md) |
| Fit a painting to the game size or floor | conform_background.py conform --mode cover or --mode ground-fit; subjects on every screen aspect: conform_background.py validate-crops |
| HD-2D plate | hd2d-plates.md: plan stage.json, scene_layout_guide.py, generate with guide.png attached, then validate_stage.py --stage <json> --output-dir <new>; look at every layout-*.png |
| Lights, shadows, atmosphere | hd2d-presentation.md: extract_scene_lights.py extract --stage <json>, curate lights.json |
| Night, lit or damaged variant of a plate | edit_locality_check.py --before <master> --after <variant> --stage <json> --edit-box <box>; regenerate on failure |
| Water, fire, mist or cloth on a still plate | background-scenes.md: build_motion_mask.py --envelope-from <clip>, scene_motion.py build, then scene_motion.py qa on the decoded file; code-drawn ripples or glow on request: codeart2d ambient_bake.py |
| Full-frame scene loop | generate2dsprite assemble_frames.py (--static-regions, --loop-overlap K --ambient) |
| Collision and paths in a web game | references/runtime/map-runtime.mjs (same rules as map_nav.py) |