I think all CW opinions exposed are very pleasant and well organized which overall should work everything fine.
On a side note I was thinking of the easiest way for users to play a video as simply as playing an audio file in ags, in my mind I picture it something like this:
Maybe have a separate category for videos:

So you can simply add a video as you do with an audio file:

So every single video has his own properties (Regarding point 4 I think the video should have his own audio type too):

And inside the script we might eventually do something like this:
Code: ags
On a side note I was thinking of the easiest way for users to play a video as simply as playing an audio file in ags, in my mind I picture it something like this:
Maybe have a separate category for videos:

So you can simply add a video as you do with an audio file:

So every single video has his own properties (Regarding point 4 I think the video should have his own audio type too):

And inside the script we might eventually do something like this:
Video*video;
video = vIntro.Play(audioPriority, repeatStyle, blockingStyle, videoSkipStyle, flags);
// vIntro.Play(eAudioPriorityNormal, eOnce, eNoBlock, eVideoSkipNotAllowed, 10);