diff --git a/web/world/js/editor.js b/web/world/js/editor.js index b37b0e8..fb7227d 100644 --- a/web/world/js/editor.js +++ b/web/world/js/editor.js @@ -316,6 +316,50 @@ export const PALETTE = [ })), }), }, + // SPRINT16 gate 5 — E's three palette entries, applied verbatim by the + // integrator at merge (A delegated in THREADS; hunks filed by E with the + // _v1 suffixes present and load-bearing, per D's S14 find). + { + // SPRINT16 gate 5, E. The ladder's middle rung, D-endorsed in S15: bolted + // to a deck — better than loose-on-grass (0.45), worse than concrete + // (1.00). One type, one rating, so the manifest resolves it node-less. + kind: 'structure', label: 'Pergola (the middle rung)', model: 'pergola_01_v1', + requires: ['pergola'], + hint: 'two bolted corners at 0.65 — the honest step between swing frame and post', + make: (id, x, z) => ({ + id, model: 'pergola_01_v1', wreckedModel: 'pergola_01_wrecked_v1', + x, z, rotYDeg: 0, solid: true, + collateralKey: 'pergola', + collateralValue: 120, collateralLabel: 'the pergola', + anchors: [1, 2].map((i) => ({ + id: `${id}_a${i}`, node: `pergola_anchor_0${i}`, type: 'pergola', work: 'cloth', + })), + }), + }, + { + // The collateral apex. NO anchors, on purpose — nothing about a glasshouse + // may adopt (the ridge carries tie_off:false in the GLB). collateralKey is + // EXPLICIT so the second one placed still bills (the carport lesson). + kind: 'structure', label: 'Glasshouse (the apex, $320)', model: 'glasshouse_01_v1', + hint: 'no anchors at all; $320 of glass — the thing you keep the whole rig away from', + make: (id, x, z) => ({ + id, model: 'glasshouse_01_v1', wreckedModel: 'glasshouse_01_wrecked_v1', + x, z, rotYDeg: 0, solid: true, + collateralKey: 'glasshouse', + collateralValue: 320, collateralLabel: 'the glasshouse', + anchors: [], + }), + }, + { + // The compliance ring. Fourteen posts, every one tie_off:false in the GLB; + // unpriced BY RULING (the bike rule — price it when debris can bend it). + kind: 'structure', label: 'Pool + fence ring', model: 'pool_kit_01_v1', + hint: 'fourteen perfect-looking posts, every one an honest no — the legal tie-offs are elsewhere', + make: (id, x, z) => ({ + id, model: 'pool_kit_01_v1', x, z, rotYDeg: 0, solid: true, + anchors: [], + }), + }, { kind: 'house', label: 'House (north edge)', model: 'house_yardside_v1', singleton: true, hint: 'three fascia anchors at rating_hint 0.35 — "the fascia board is a lie"',