This function sets shadow opacity. Alpha application: shadowedColor = litColor * (1 - shadowAlpha) + shadowColor * shadowAlpha, alpha controls blend between lit color and shadow color. Alpha ranges: 0.0 = no shadow (fully lit, shadow invisible), 0.5 = semi-transparent shadow (50% darkening, soft look), 1.0 = opaque shadow (full shadow color, hard contrast), >1.0 typically clamped or over-darkens. Use cases: (1) Hard shadows (1.0 for high contrast, realistic outdoor), (2) Soft shadows (0.5-0.7 for subtle darkening, indoor ambient), (3) Transparent shadows (0.3-0.5 for gentle shading, overcast day), (4) No shadows (0.0 to disable shadow darkening while keeping shadow map), (5) Dynamic shadows (animate alpha for fading shadows in/out). Common patterns: hard outdoor b3dLightShadowAlpha(light, 1.0), soft indoor b3dLightShadowAlpha(light, 0.6), subtle fill b3dLightShadowAlpha(light, 0.3), fade out alpha = alpha - 0.01 until 0.0. Typical usage: set to 1.0 for realistic shadows, reduce to 0.5-0.7 for softer less harsh shadows, animate for dynamic shadow intensity (time of day, weather changes). Alpha vs shadow color: alpha controls intensity (how much darkening), shadow color controls tint (what color darkening), both multiply together (black shadow at alpha=0.5 = 50% darker, blue shadow at alpha=0.5 = 50% blue tint). Default shadow alpha: likely 1.0 if not set (verify during testing, full opacity typical default). Performance: O(1) setting (simple struct assignment, no rendering cost until next frame). Validation: prints error if invalid light handle or non-light entity. Related: b3dLightShadowColor sets shadow tint/color, b3dEnableShadows enables shadow casting, b3dLightIntensity sets light brightness (different from shadow intensity).