General Update Pattern
A colorful bowl of fruit demonstrates D3's general update pattern using SVG circles and animated transitions. The `fruitBowl` function binds an array of fruit objects to circles, employing `selection.enter`, `selection.merge`, and `selection.exit` to handle additions, updates, and removals. `d3.scaleOrdinal` maps fruit types to fill colors and radius sizes, while `transition` animates positions and sizes. Timers in `index.js` trigger state changes, popping fruits, swapping an apple for a lemon, and removing items, showing how circles gracefully grow, shrink, or disappear over one-second intervals.