Sub-task of #4869.
Why
`immutable@3.8.2` is ancient (current major is v5). 9 import sites in `catalog/app/`. Pulled in primarily for redux-immutable interop, which itself is unmaintained.
Scope
- Identify the 9 import sites and what they use (`Map`, `List`, `fromJS`, etc.).
- Replace with frozen plain objects + RTK patterns where reducers use it, or with native arrays/Maps where data structures use it.
- Drop `immutable` and `redux-immutable` from `catalog/package.json`.
Effort
~3–4 hours, incremental: one reducer/file at a time, run tests after each.
Risk
Medium — Redux state shape changes need care. Best done as a dedicated PR with no other changes mixed in.
Sub-task of #4869.
Why
`immutable@3.8.2` is ancient (current major is v5). 9 import sites in `catalog/app/`. Pulled in primarily for redux-immutable interop, which itself is unmaintained.
Scope
Effort
~3–4 hours, incremental: one reducer/file at a time, run tests after each.
Risk
Medium — Redux state shape changes need care. Best done as a dedicated PR with no other changes mixed in.