General Update Pattern
A smiling face rendered in SVG changes expression over time: apples shrink, a lemon appears, and eyebrows disappear as data updates. This example demonstrates the general update pattern with D3 v5, using `selection.data`, `enter`, `merge`, and `exit` to handle entering, updating, and removing circles. The code maps fruit types to colors and radii via `scaleOrdinal`, and `setTimeout` triggers three sequential re-renders to show state transitions.