A studio booking board changes its opening time. Follow the data from an array to the visible list, then watch a click redraw the page.
bookings is the source of truth. paint() clears old rows with replaceChildren(), creates each <li>, assigns a string through textContent, and appends it. This avoids treating a booking name as HTML. The button changes the array first, then calls paint() again. A button already works with pointer, Enter, and Space; it does not need a custom key handler.
Run the preview. You should see two bookings; activate Update first session time and the first time becomes 09:30 without duplicating a row. Change the second name in the array, Run again, and see which line follows it. Restore the name before continuing. The next exercise transfers this pattern to a workshop itinerary.