veg fixer: multiple vegas pro versions

run veg_fixer_multiversion.cs through tools > scripting > run script.
select the effect-series video and audio events first. use a saved project copy
for the first run. the script does not save or overwrite the project file.

compatibility checked against these installed scripting libraries:
16.0 build 424
17.0 build 452
18.0 build 482
19.0 build 651
23.0 build 302

the same source compiles against each library. a separate process for each
version exercised public ofx keyframe reads/writes, notifications, the native
fallback interface, legacy registration routing, audio channel restrictions,
and count limits through managed proxies. 31 timeline-model checks also pass.
these checks do not execute a live native plugin or reproduce the reported freeze.
other releases using scriptportal.vegas are unverified. older releases using
sony.vegas or sonicfoundry.vegas are not supported by this source.

changes for compatibility:
- prefer the public ofx interface instead of requiring private host fields.
- use the native workaround only when supported public access fails.
- retain the legacy effect routing and mono/stereo audio fixes.
- refresh only effects whose animation times changed, after all timeline edits.
- reject unreasonable native parameter/key counts before enumeration.
- group edits in the host undo facility and retain explicit restoration on errors.
- show managed failures with a version-specific diagnostic file.
- media generators follow overlapping selected source clips instead of their
  synthetic media duration. select source clips and generated overlays together.
- generated overlays at the clip start end at the repaired picture end. delayed
  starts retain their relative position. overlays spanning complete additional
  source columns continue to span those repaired columns. audio-only columns
  can anchor generators when there is no selected picture event at that start.
- generator event pan/crop and event fx animation fit the repaired overlay.
  shared generated media duration and internal generator animation are not edited.
- a generated overlay without an overlapping selected source stops preflight
  rather than being expanded using an arbitrary generator duration.

freeze diagnostics:
the script writes its latest stage to the windows temporary folder:
veg_fixer_progress.txt
managed failures also write veg_fixer_diagnostic.txt in that folder.
open the folder with %temp% in file explorer. these logs belong to the user
running vegas, so a friend must retrieve them from their own computer.
the progress log records the effect identity before public/native animation
access and plugin refresh, plus reversed-source preparation and event updates.
a native plugin call that hangs cannot be interrupted safely by this script.

retained behavior:
- only selected events are processed; include matching audio layers.
- the first column stays at its original position; later columns follow it.
- clips restart at source zero, looping is disabled, and short-form effects
  repeat the full source clip rather than play one continuous long-form video.
- no cutoff is applied at the loop selection or the old project endpoint.
- reversed slices use full-source reversed takes without resizing shared media.
- pan/crop, legacy event fx, and animated ofx key times fit the repaired event.
- inaccessible animation is not silently skipped. failed reads stop before
  timeline changes; failed writes trigger restoration and report any failures.

limits:
track automation, media-level animation, audio fx automation, velocity envelopes,
and ofx bezier control-point tangents are not retimed. source media must be
available. nested reversed subclips and reversed slices with media fx are
rejected. unselected events are not moved out of the expanded series.
if rendering a loop region, extend that region to cover the new endpoint.

the screenshot describes a freeze in a separately modified script. that script
was not attached, so its specific failure has not been diagnosed here.
