# Changelog

## Score

- CAI 67 → 61 (-5.6)

## Lenses

- Code Health 99 → 99 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 60 → 45 (-14.7)
- Readiness 54 → 54 (+0.0)
- Security 95 → 95 (+0.0)
- Performance 91 → 91 (+0.0)

## Resolved (9)

- Incorrect return type: The methods `mouse_cursor_args`, `mouse_relative_args`, and `mouse_scroll_args` return `Scancode`, but based on the `from_pos` constructors and typical semantics, these events should return position data (e.g., `[f64; 2]` or `Point`). Returning `Scancode` (a keyboard code) for mouse events is semantically incorrect and likely a bug or copy-paste error.
- Redundant setter pattern: Same as above, `set_ups_reset` and `ups_reset` perform the same operation with different return types (void vs Self).
- Redundant setter pattern: The API exposes both a void-returning setter (`set_ups`) and a builder-style fluent setter (`ups`) for the same property. This duplicates intent and confuses users on which pattern to use.
- Redundant setter pattern: `AdvancedWindow` also exposes both void setters and fluent builders for properties like title, exit_on_esc, etc.
- Redundant setter pattern: `WindowSettings` also exposes both void setters and fluent builders for all properties (title, size, fullscreen, etc.).
- Redundant setter pattern: `set_bench_mode` and `bench_mode` are duplicate operations.
- Redundant setter pattern: `set_lazy` and `lazy` are duplicate operations.
- Redundant setter pattern: `set_max_fps` and `max_fps` are duplicate operations.
- Redundant setter pattern: `set_swap_buffers` and `swap_buffers` are duplicate operations.
