Reads a particle attribute. Type matches the attribute (see ParticleAttribute).
Reads the engine time uniform (uniforms.time, seconds since pass start).
Reads the per-frame delta-time uniform (uniforms.dt, seconds).
Reads the particle's slot index as an f32 (handy as a per-particle constant).
Reads the emitter origin (world-space, after the GameObject transform). vec3.
Uniform random float in [min, max]. Seed source depends on RandomMode.
Reference to a local variable declared in the same graph.
Branchless selection: returns whenTrue if cond is true, else whenFalse.
Both branches are evaluated; for control-flow use action.if_.
WGSL swizzle: swizzle(v, 'xz'), swizzle(c, 'rgb'), etc.
channels must be 1–4 of [xyzwrgba].
Value-producing expression node. Recursive — operators take other
Exprs as inputs. Each node produces a single value whose WGSL type is implied by its kind and inputs; mismatched types surface as WGSL compile errors at pipeline-creation time.