[
  {
    "name": "town-hill-1-street",
    "page": "settlement.html",
    "js": [
      "await window.__show('town','hill',1,'walk','auto'); window.__walkStreet();",
      "Object.defineProperty(window,'__mats',{configurable:true,get:()=>({stats:window.__stats,fps:window.__fps,ground:window.__built().group.children.find(m=>m.name==='ground-grass')?.userData.groundTimings})});"
    ],
    "wait": 3000
  },
  {
    "name": "town-hill-1-square",
    "page": "settlement.html",
    "js": [
      "const s=window.__plan().squares[0],c=s.poly.reduce((a,b)=>[a[0]+b[0]/s.poly.length,a[1]+b[1]/s.poly.length],[0,0]); window.__view('walk'); window.__walkTo(c[0]-8,c[1]-3,.1,.02);"
    ],
    "wait": 1500
  },
  {
    "name": "town-hill-1-parvis",
    "page": "settlement.html",
    "js": [
      "const l=window.__plan().plots.find(p=>p.use==='church'||p.use==='cathedral'); window.__view('walk');window.__walkTo(l.x-l.w/2-9,l.z,0,.03);"
    ],
    "wait": 1500
  },
  {
    "name": "town-hill-1-junction",
    "page": "settlement.html",
    "js": [
      "const p=window.__plan(),j=p.junctions?.find(j=>!p.squares.some(s=>Math.hypot(j.x-s.poly[0][0],j.z-s.poly[0][1])<10)),r=p.roads.find(r=>r.kind==='stair')||p.roads.find(r=>r.kind==='lane')||p.roads[1],q=j?[j.x,j.z]:r.pts[0]; window.__view('walk');window.__walkTo(q[0]-4,q[1]+2,Math.atan2(-2,4),.03);"
    ],
    "wait": 1500
  }
]