{
  "name": "multi-output-composite",
  "sources": [
    {
      "name": "room_src",
      "type": "livekit",
      "config": {
        "serverUrl": "wss://your-project.livekit.cloud",
        "token": "eyJ...",
        "select": { "mediaType": "both", "excludeIdentities": ["recorder"] }
      }
    }
  ],
  "nodes": [
    {
      "name": "mix_video",
      "type": "video_mixer",
      "inputs": ["room_src"],
      "config": {
        "canvas": { "width": 1920, "height": 1080, "bgColor": "#16213e" },
        "layout": {
          "mode": "speaker",
          "common": { "padding": 10, "gap": 6, "borderRadius": 10 },
          "speaker": {
            "mainPriority": ["screen_share", "active_speaker"],
            "mainRatio": 0.7,
            "thumbnailPosition": "right",
            "maxThumbnails": 4
          }
        }
      }
    },
    {
      "name": "mix_audio",
      "type": "audio_mixer",
      "inputs": ["room_src"],
      "config": { "sampleRate": 48000, "channels": 2 }
    }
  ],
  "sinks": [
    {
      "name": "rtmp_out",
      "type": "rtmp_push",
      "inputs": ["mix_video", "mix_audio"],
      "config": { "urls": ["rtmp://live.example.com/app/conf-key"] }
    },
    {
      "name": "rtc_out",
      "type": "livekit",
      "inputs": ["mix_video", "mix_audio"],
      "config": {
        "serverUrl": "wss://your-project.livekit.cloud",
        "token": "eyJ...",
        "videoTrackName": "mixed-video",
        "audioTrackName": "mixed-audio"
      }
    },
    {
      "name": "segment_out",
      "type": "segment",
      "inputs": ["mix_video", "mix_audio"],
      "config": {
        "storageType": "s3",
        "storageConfig": {
          "prefix": "conferences/{roomName}/{date}/",
          "filename": "conference_{timestamp}",
          "bucket": "recordings",
          "region": "us-east-1",
          "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
          "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
        }
      }
    }
  ]
}
