glytch/fktry/data/tech.json
type-two f015a66283 [data] full codex catalog + data validator
Transcribe the §2-§6 codex into machine-readable canon and add the validator
that keeps five parallel lanes from drowning in dangling ids.

- validator (28 tests): recipes point back at their machine, every item/tech/
  commission reference resolves, ids unique + kebab-case, colors hex, footprints
  >=1x1, plus a reachability pass proving MELT is craftable from raw ore.
- items 9->36, machines 7->21, recipes 4->35, tech 0->17, commissions 1->10.
- mosh rewired to canon (gop-crate -> melt + reclaimed anchor slab); all seed
  recipe ids preserved so nothing dangles mid-round.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 16:04:27 +10:00

38 lines
2.4 KiB
JSON

[
{ "id": "disc-artifact-bottling", "era": "disc", "cost": { "analog-pack": 10 },
"unlocks": ["artifact-bottler", "can-static"] },
{ "id": "disc-chroma-subsampling", "era": "disc", "cost": { "analog-pack": 10 },
"unlocks": ["subsampler", "subsample-422"] },
{ "id": "disc-macroblock-quarrying", "era": "disc", "cost": { "analog-pack": 15 },
"unlocks": ["quantize-crime"] },
{ "id": "disc-ringing-skim", "era": "disc", "cost": { "analog-pack": 10, "spatial-pack": 15 },
"unlocks": ["skim-ringing"] },
{ "id": "disc-subsampling-420", "era": "disc", "cost": { "analog-pack": 20, "spatial-pack": 15 },
"unlocks": ["subsample-420", "press-anchor-slab"] },
{ "id": "disc-mosh-reactor", "era": "disc", "cost": { "analog-pack": 20, "spatial-pack": 10 },
"unlocks": ["mosh-reactor", "mosh"] },
{ "id": "disc-gamut-paints", "era": "disc", "cost": { "spatial-pack": 20 },
"unlocks": ["mix-rec709", "mix-dci-p3"] },
{ "id": "disc-gop-cadence-ibbp", "era": "disc", "cost": { "spatial-pack": 25, "temporal-pack": 10 },
"unlocks": ["cast-janus-wafer", "assemble-gop-ibbp"] },
{ "id": "disc-i-only-cadence", "era": "disc", "cost": { "spatial-pack": 30, "temporal-pack": 20 },
"unlocks": ["assemble-gop-i-only"] },
{ "id": "stream-field-loom", "era": "stream", "cost": { "analog-pack": 20 },
"unlocks": ["field-loom", "weave-fields", "loom-vhold-roll"] },
{ "id": "stream-telecine", "era": "stream", "cost": { "analog-pack": 25, "temporal-pack": 15 },
"unlocks": ["telecine-puller", "mill-judder"] },
{ "id": "stream-software-decoding", "era": "stream", "cost": { "analog-pack": 20, "temporal-pack": 20 },
"unlocks": ["software-decoder"] },
{ "id": "stream-demosaic-vng4", "era": "stream", "cost": { "spatial-pack": 30 },
"unlocks": ["demosaic-vng4", "pan-speckle"] },
{ "id": "stream-bloom-loops", "era": "stream", "cost": { "spatial-pack": 20, "temporal-pack": 30 },
"unlocks": ["bloom-duplicator", "bloom-grade-3"] },
{ "id": "stream-optical-flow", "era": "stream", "cost": { "temporal-pack": 25 },
"unlocks": ["mv-extractor", "extract-motion"] },
{ "id": "stream-laser-primaries", "era": "stream", "cost": { "spatial-pack": 40, "temporal-pack": 20 },
"unlocks": ["mix-rec2020"] },
{ "id": "stream-hex-splicing", "era": "stream", "cost": { "container-pack": 25, "temporal-pack": 25 },
"unlocks": ["hex-splicer", "splice-offsets"] }
]