{ "_readme": "Master of Vega — drop-in artwork manifest. Every sheet starts with path:null, which means VegaArt.js paints a procedural stand-in at exactly the same frame geometry. To use real art, drop the PNG in assets/images/mastervega/ and set its path here — no code changes. Frame layouts are documented in src/games/mastervega/sprites.md and are APPEND-ONLY.", "_kindReadme": "kind selects the procedural painter in VegaArt.PROC_PAINTERS. Painters are keyed by kind, never by sheet name, so adding a sheet later needs no code change.", "sheets": { "ships": { "key": "vega-ships", "path": null, "kind": "ship", "frameWidth": 96, "frameHeight": 96, "cols": 8, "rows": 10, "_layout": "One row per species (species.shipFrame), one column per hull (hull.frame). Frame = shipFrame * 8 + hull.frame. Ships face UP at frame rest." }, "planets": { "key": "vega-planets", "path": null, "kind": "planet", "frameWidth": 192, "frameHeight": 192, "cols": 5, "rows": 3, "_layout": "One frame per planetType.frame, 0-14, in the order planetTypes appears in the rules file." }, "stars": { "key": "vega-stars", "path": null, "kind": "star", "frameWidth": 192, "frameHeight": 192, "cols": 3, "rows": 3, "_layout": "One frame per starClass, in rules order: blue, white, yellow, orange, red, brown, binary, pulsar, blackhole." }, "portraits": { "key": "vega-portraits", "path": null, "kind": "portrait", "frameWidth": 256, "frameHeight": 256, "cols": 5, "rows": 2, "_layout": "One frame per species.portraitFrame, 0-9, in rules order." }, "leaders": { "key": "vega-leaders", "path": null, "kind": "portrait", "frameWidth": 160, "frameHeight": 160, "cols": 4, "rows": 4, "_layout": "One frame per leader.portraitFrame, 0-15, in rules order." }, "buildings": { "key": "vega-buildings", "path": null, "kind": "icon", "frameWidth": 64, "frameHeight": 64, "cols": 8, "rows": 2, "_layout": "One frame per building.frame, 0-15, in rules order." }, "techicons": { "key": "vega-techicons", "path": null, "kind": "icon", "frameWidth": 48, "frameHeight": 48, "cols": 10, "rows": 7, "_layout": "Frames 0-5 are the six tech FIELDS (techFields[].iconFrame); frames 6-65 are the individual techs (techs[].iconFrame). 66-69 spare." } } }