Wan 3.0 is a single model that does a lot of jobs. According to Alibaba Cloud Model Studio's guide, wan3.0-video and wan3.0-video-prime handle text-to-video, first-frame and first-and-last-frame generation, multimodal reference, video editing and video extension. They do it without switching model names. The model works out which job you mean from the type of each item in input.media and from the intent of your prompt.
That flexibility moves a lot of rules into the request itself. Some combinations are invalid. Some are valid but almost certainly not what you meant. A video generation is asynchronous and can take a while, so finding out from a failed task, or from a clip that quietly ignored your edit, is a slow feedback loop.
This post builds a small TypeScript function that checks a request locally before it is sent. It returns a list of errors and warnings, with no network calls.…