{
  "id": "buddy-duo",
  "title": "Buddy Duo",
  "blurb": "Nova and Orbit on one floor — a single after-link makes Orbit wave back whenever Nova finishes greeting.",
  "entities": [
    { "name": "Nova", "kind": "character", "file": "chars/items/nova.svg", "x": 20, "y": 50, "w": 170 },
    { "name": "Orbit", "kind": "character", "file": "chars/items/orbit.svg", "x": 62, "y": 54, "w": 170 }
  ],
  "links": [
    { "src": { "name": "Nova", "action": "bow" }, "when": "after", "dst": { "name": "Orbit", "action": "wave" } }
  ],
  "presets": {
    "note": "Scripted presets — the ✦ AI director buttons above compose beats live from the cast state (local browser AI first, provider fallback).",
    "beats": [
      { "label": "They greet each other", "thought": "Nova greets Orbit — Orbit waves back on the after-link, then tilts his head, curious.",
        "actions": [
          { "ent": "Nova", "do": "say", "text": "hi orbit!" },
          { "ent": "Nova", "do": "action", "id": "greet" },
          { "ent": "Orbit", "do": "action", "id": "wave" },
          { "ent": "Orbit", "do": "action", "id": "tiltHead" },
          { "ent": "Orbit", "do": "say", "text": "✦ !" }
        ] },
      { "label": "Orbit comes over", "thought": "Orbit hops across the floor to hang out with Nova.",
        "actions": [
          { "ent": "Orbit", "do": "walkTo", "x": 46, "y": 56 },
          { "ent": "Nova", "do": "face", "x": 46 },
          { "ent": "Orbit", "do": "action", "id": "emote" },
          { "ent": "Nova", "do": "action", "id": "nod" }
        ] },
      { "label": "A stroll around the floor", "thought": "They wander the whole floor — Nova strides the long way across while Orbit hops alongside, then they trade ends.",
        "actions": [
          { "ent": "Nova", "do": "walkTo", "x": 80, "y": 46, "async": true },
          { "ent": "Orbit", "do": "walkTo", "x": 68, "y": 58 },
          { "ent": "Nova", "do": "face", "x": 68 },
          { "ent": "Orbit", "do": "walkTo", "x": 34, "y": 60, "async": true },
          { "ent": "Nova", "do": "walkTo", "x": 24, "y": 50 },
          { "ent": "Nova", "do": "face", "x": 34 },
          { "ent": "Orbit", "do": "say", "text": "✦ !!" },
          { "ent": "Nova", "do": "action", "id": "wave" },
          { "ent": "Orbit", "do": "action", "id": "tiltHead" }
        ] }
    ]
  }
}
