# Changelog All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. ## [1.2.2] ### Added - SingleSlotReelsSpinSystem settings now expose `slotStopDelay` to pause between individual slot stops within a column while `reelStopDelay` continues to pace the first slot in each column, enabling layered timing without manual timers. - HoldAndWin stories expose `slotStopDelay` as a dedicated control to preview staggered slot timing. - HoldAndWin stories configure fractional steps for all numeric controls to enable fine-grained tuning during demos. - Added a stub `MaskingSystem` and wired it into Reels spin stories to prepare future masking orchestration work. - Introduced `BlurSymbolsSystem` to centralise blur orchestration for reels symbols. - Added dedicated Storybook demos for `MaskingSystem` and `BlurSymbolsSystem`, now mirroring the reel spin setup while piping Storybook controls through each system's `setSettings` method for live configuration tweaks. ### Changed - Reels reel states no longer toggle blur directly; `ReelsSpinSystem` marks blur intent while `BlurSymbolsSystem` applies filters. - `BlurSymbolsSystem` removes cached filter areas, zeroes padding, and supports runtime velocity/kernel/offset configuration through `setSettings`. - `MaskingSystem` exposes an `enabled` flag so Storybook demos and games can disable masking without removing the system from st ates. ### Fixed - SingleSlotReelsSpinSystem trims transient slot symbols and collapses each delayed reel to its landed symbol so duplicates cannot appear when `slotStopDelay` is enabled. - Column stop scheduling now respects `reelStopDelay` for the first slot in each column even while previous columns finish their queued slots, keeping staggered visuals aligned across reels. - Reel symbols remain visible when blur and masking are enabled together by removing conflicting bitmap caching from the blur toggle. - Motion blur applied to masked reel symbols now clips to the mask bounds so blur streaks no longer extend beyond the masked area. ## [1.2.1] - 2025-10-20 ### Added - Story: DoubleHoldAndWinStory showing two HoldAndWinMachine instances stacked vertically, each with different initMap/screenMap. ### Changed - HoldAndWin stories: scaled all MachineContainer instances to 0.5 (half size). In DoubleHoldAndWinStory both containers are scaled; spacing uses containerTop.height and respects scale. centerView alignment remains correct. ## [1.2.0] - 2025-10-20 ### Added - Introduced HoldAndWin machine scaffold and Storybook story (features/HoldAndWin). - Single-slot reels support: - SingleSlotReelsSpinSystem - SingleSlotReel - Hold-and-win demo assets and manifest: - configs/slotMachine.json - symbols, anticipation, winline assets, bitmap fonts, textures - Auto-trigger spin in HoldAndWin story with generated screenMap and applied spin settings. ### Changed - ReelsSpinSystem: support preventReelsSpin map to disable start/stop for selected reels; skip prevented reels in the spin flow. - ReelsMachine: integrate new maps/behavior for single-slot reels and preventReelsSpin handling. - Reel: adjustments to support single-slot behavior. - createScreenInputMap: generate maps aligned with the new HoldAndWin config. - SlotMachineConfig: extended with properties required by HoldAndWin and updated spinning behavior. - index.ts: export newly added modules. - ReelsSpinSystem story: updated with example demonstrating disabled first/last reels. ## [1.1.23] - 2025-10-20 ### Added - Initialize CHANGELOG for the current branch. ### Changed - Bump package version to 1.1.23.