{
  "id": "site_02_corner_block",
  "name": "The Corner Block",
  "blurb": "Two streets, two fences, and a carport that looks like four free anchors. It isn't.",

  "yard": { "width": 24, "depth": 16 },

  "sun": { "elevationDeg": 55, "azimuthDeg": -125 },

  "gardenBed": { "x": 0, "z": 1, "w": 5, "d": 3.5 },

  "_design": [
    "DESIGN.md wants the corner block anchor-poor — 'nowhere to tie off'. An empty yard is just a",
    "smaller yard, so the trap is the interesting build: give it something that LOOKS like four free",
    "anchors and is the worst steel in the game. That's E's carport (beam 0.22, post 0.30 rating_hint,",
    "both BELOW the house fascia's 0.35, collateral 'carport'). Tie 25 m2 to it in a southerly and you",
    "don't break a shackle — you take the carport, and it lands on whatever's under it.",
    "",
    "The site IS winnable off the honest anchors — one gum tree east and three ground posts — so the",
    "carport is temptation, not necessity. Measured at authoring time over honest anchors only:",
    "  tr1+q2+q3   with the carport's cb corner is the covering play, but the honest 3 posts alone",
    "  make an in-band quad and q1+q2+q3+tr1 covers 58% at 32.6 m2. Full load audit: Lane B's",
    "  tools/site_audit. If tree+posts can't make a winnable $80 line, the fix is to move the tree",
    "  (or add a post), NEVER to soften the carport — E's e.test.js pins those ratings with the reason."
  ],

  "structures": [
    {
      "id": "carport", "model": "carport_01_v1",
      "x": -7, "z": -3, "rotYDeg": 0,
      "solid": true,
      "anchors": [
        { "id": "cb1", "node": "beam_anchor_01", "type": "post", "work": "bracket" },
        { "id": "cb2", "node": "beam_anchor_02", "type": "post", "work": "bracket" },
        { "id": "cp1", "node": "post_anchor_01", "type": "post", "work": "cloth" },
        { "id": "cp2", "node": "post_anchor_02", "type": "post", "work": "cloth" }
      ]
    }
  ],

  "trees": [
    {
      "id": "tr1", "model": "tree_gum_02_v1",
      "x": 7, "z": -1, "phase": 1.7, "trunkH": 3.8, "anchorY": 3.1,
      "anchors": [
        { "id": "tr1", "node": "branch_anchor_01", "type": "tree", "work": "cloth" },
        { "id": "tr1b", "node": "branch_anchor_02", "type": "tree", "work": "cloth" }
      ]
    }
  ],

  "posts": [
    { "id": "q1", "x": -3.5, "z": -2.5, "h": 4.0, "type": "post", "work": "cloth" },
    { "id": "q2", "x": 3.5, "z": -2.0, "h": 4.0, "type": "post", "work": "cloth" },
    { "id": "q3", "x": 2.0, "z": 4.0, "h": 4.0, "type": "post", "work": "cloth" },
    { "id": "q4", "x": -3.0, "z": 4.0, "h": 4.0, "type": "post", "work": "cloth" }
  ],

  "shedTable": { "model": "shed_table_v1", "x": 8.5, "z": 4.5, "rotYDeg": -90, "pickupNode": "pickup_anchor" },

  "gnome": { "model": "garden_gnome_01_v1", "x": 2.6, "z": 3.0, "rotYDeg": 0.6, "collateralValue": 25 },

  "fence": {
    "sides": ["south", "east"]
  },

  "wind": {
    "_venturi": [
      "Lane C: the corner block's whole weather personality is the venturi — a street on two sides,",
      "so a gap that SCREAMS when the southerly swings to run along it and is calm otherwise. The gap",
      "runs NE-SW between the house line and the carport, i.e. along the yard's west edge. Two",
      "coordinates you asked for: throat centre (-6, 0), and it funnels along axis ~2.1 rad (the",
      "southerly's direction after the change). Numbers are yours to tune; I've put a starting shape",
      "below in your schema. gain/radius/sharp are your call."
    ],
    "venturi": [
      { "x": -6, "z": 0, "axis": 2.1, "gain": 1.5, "radius": 5, "sharp": 3 }
    ]
  }
}
