D3 General Update Pattern (Singular Elements)
This example demonstrates the D3 general update pattern with singular SVG elements by animating a fruit bowl's contents. It uses `d3.select`, `d3.range`, and `d3.scaleOrdinal` to manage a dynamic dataset of apples and lemons. The visualization sequentially removes, replaces, and filters fruit items in the bowl, showing how `selection.selectAll`, `.enter()`, `.merge()`, and `.exit()` handle transitions for the appended circles, text labels, and the background rectangle. The code explicitly shows data-driven updates through timeouts in `index.js`.