Separating state and dispatch lets action-only consumers subscribe to the stable dispatch Context without depending on changing state.