Accepts multipart form data with two or more video files. This is an async endpoint - it returns `202 Accepted` immediately and progress is streamed via SSE at `GET /api/v1/jobs/{jobId}/progress`.
- Clips are concatenated in the order they are uploaded.
- All clips are re-encoded to match the first clip's resolution, frame rate (30 fps), and codec (H.264). Mismatched inputs are automatically normalized.
- Accepts 2-10 video files per request.
- Progress updates are available via SSE at `GET /api/v1/jobs/{jobId}/progress` until the job completes.