Problem
Take the grouped column case, the projection needs to know the expand state of each group. Where shall we put the state?
Solutions
Managed by user
Also known as "lift state up" in React context. Benefit: aligned with deterministic view generation rule [UI = f(state)] Issue: user need to write a lot glue code Fix up: let projections provide state reducers
Managed by projection
Save the state in projection-core, and let the projections to manage them. Benefit: projection knows all the logic to manipulate the state
Decision
Go with the lift state up solution. We can put a issue in backlog to also support managing the state by the projections.