Player/World Event │ ▼ [Interaction Detected] (e.g., Projectile hits Field) │ │ Gather Tags: │ - Actor A: Ability.Projectile, Element.Fire │ - Actor B: Ability.Field, Element.Water ▼ [Build Lookup Key] Key = (Ability.Projectile+Element.Fire, Ability.Field+Element.Water, Context="ProjectileThroughField") │ ▼ [Query Data Assets] - Interaction Matrix → "ModifyProjectile" - Modification Asset → { NewElement=Steam, DamageΔ=+10%, SpeedΔ=-15%, VFX=S_SteamTrail, SFX=Steam_Hiss, ImpactFx=S_SteamImpact } │ ▼ [Apply In Place] - Update Tags: remove Element.Fire, add Element.Steam, add State.Modified - Update Properties: damage, speed, impact behavior - Update Presentation: Niagara/Materials/Sound via GameplayCues │ ▼ [Replicate Lightweight State] - Tags replicated; clients play cues consistently