Welchy Performance 1.0.4.2 - vehicle sound references, API 1

Updated 4G V3 1.0.0.84 keeps the Cummins limiter recording, turbo loops and
separate release clips inside the truck ZIP. FS25_4GRevLimiterSounds is not
required for this truck. Welchy Performance remains the controller.

Ctrl+Shift+N opens Performance tuning. Each vehicle saves its own choices.
Engine / limiter sounds: Vehicle original uses native engine cuts/RPM bounce;
Limiter recording uses the recording supplied by the truck. Turbo sound:
Vehicle's own turbo selects the truck's stock or tuned sound according to its
motor configuration. Vehicle default restores native turbo playback. Turbo
volume 0 restores native turbo playback too. Bundled presets remain optional.
Existing savegame choices take precedence over a truck's XML defaults.

Reusable authoring interface in the truck's vehicle XML:

<welchyPerformanceSounds apiVersion="1" allowBundledFallback="true">
  <limiter configFilename="sounds/performance/limiterLoop.xml"/>
  <turbo motorConfiguration="1"
         configFilename="sounds/welchyPerformanceStock.xml"
         nativeLoopFile="sounds/cummins_stock/cummins_turbo.ogg"
         label="4G stock turbo" pressureMs="140" attackMs="100"
         releaseMs="120" loopPitchBase="0.75" loopPitchRange="0.60"
         tailPitchBase="0.90" tailPitchRange="0.20" volumeGain="1"/>
</welchyPerformanceSounds>
<revLimiterFlames soundMode="1" turboMode="6" turboVolume="1"/>

All paths are relative to the truck's mod root; keep recordings in that mod.
Limiter XML uses sounds.limiterLoop with a file attribute. Turbo XML uses
sounds.spoolLoop and sounds.spoolDown with separate file attributes. Standard
SoundManager sample attributes supply gain, attenuation and interior filters.
motorConfiguration is the 1-based motor index; 0 is an optional wildcard.
An exact motor match wins. Duplicate matching declarations are rejected.
Turbo mode 0 is native, 1-5 are the existing bundled profiles, 6 is authored.
Existing save values and multiplayer tuning fields retain their meanings.

Profile attributes: pressureMs, attackMs, releaseMs; loopPitchBase,
loopPitchRange, tailPitchBase, tailPitchRange; volumeGain, pressureExponent,
throttleExponent. These affect audio response only, not boost physics/power.

The explicitly named nativeLoopFile is excluded from engine limiter cuts.
It is muted only while a valid authored loop/release pair actually owns that
layer. Off, zero volume, AI, engine reset/deletion and load failure restore
native playback. No other sample is inferred from a vehicle name or recording.
Turbo audio baked into engine recordings cannot be separated automatically.

Missing/invalid local limiter content returns to native engine audio. Legacy
trucks with no authored limiter can still use the optional old sound pack.
Missing custom turbo files or decode errors use the bundled Diesel fallback
only when allowBundledFallback is true; otherwise native audio remains.
The fallback does not mute the native turbo layer. Failure states are cached
to avoid repeated decoder retries. Explicit bundled presets work as before.

The 4G stock/tuned releases are derived pitch-downs from that truck's separate
turbo recordings, not newly recorded throttle-lift samples. The original
engine and turbo OGG recordings are retained unchanged for native playback.

Validation: automated Lua behavior tests and archive/XML/audio checks.
Final in-game listening is still required: limiter timing; turbo buildup and
release; interior/exterior balance; fallback; per-vehicle on/off; deletion.

Lope integration: truck idle audio and Performance engine mixing use an explicit
vehicle handshake, so native sample volume/pitch are restored before ownership
changes. The separately declared native turbo stays outside the lope engine mix.
Parked lope reads current Performance throttle instead of the native pedal value
that can remain stale while parked mode bypasses normal transmission updates.
