{
  "name": "cohost-vertical",
  "sources": [
    {
      "name": "room",
      "type": "livekit",
      "config": {
        "serverUrl": "wss://your-project.livekit.cloud",
        "token": "<subscribe-token>",
        "select": {
          "mediaTypes": ["audio", "video"]
        }
      }
    }
  ],
  "nodes": [
    {
      "name": "stage",
      "type": "video_mixer",
      "inputs": ["room"],
      "config": {
        "canvas": {
          "width": 1080,
          "height": 1920,
          "fps": 30,
          "backgroundColor": "#05070f",
          "coordinateSystem": "ratio"
        },
        "layout": {
          "mode": "custom",
          "common": {
            "borderRadius": 20
          },
          "custom": {
            "regions": [
              {
                "name": "host",
                "source": {
                  "identity": "host"
                },
                "width": 1,
                "height": 1,
                "fit": "cover",
                "placeholder": {
                  "text": {
                    "content": "Waiting for the host…",
                    "position": "bottom",
                    "color": "#94a3b8",
                    "fontSize": 40
                  }
                }
              },
              {
                "name": "guest",
                "source": {
                  "identity": "guest"
                },
                "offsetX": 0.6,
                "offsetY": 0.64,
                "width": 0.36,
                "height": 0.24,
                "zIndex": 2,
                "fit": "cover",
                "style": {
                  "backgroundColor": "#111a2e",
                  "borderColor": "#38bdf8",
                  "borderWidth": 4,
                  "borderRadius": 28
                },
                "placeholder": {
                  "text": {
                    "content": "Waiting for a guest…",
                    "position": "bottom",
                    "color": "#94a3b8",
                    "fontSize": 40
                  }
                }
              }
            ]
          }
        }
      }
    },
    {
      "name": "mix",
      "type": "audio_mixer",
      "inputs": ["room"],
      "config": {}
    }
  ],
  "sinks": [
    {
      "name": "live",
      "type": "rtmp_push",
      "inputs": ["stage", "mix"],
      "config": {
        "urls": ["rtmp://ingest.example.com/live/<stream-key>"],
        "encoding": {
          "videoCodec": "h264",
          "audioCodec": "aac",
          "videoBitrateBps": 4000000,
          "audioBitrateBps": 128000,
          "keyframeIntervalSec": 2
        }
      }
    }
  ],
  "policies": {
    "maxDurationSec": 14400,
    "idleTimeoutSec": 120
  }
}
