Default: nested events, not automatic GTM variables
On each meaningful change, the tag updates a nested si object and fires browser events (si:personalization-signal). Your rules listen to those events or read SessionIntel.getActivationPayload().
Optional: call pushCommercialSignalsToDataLayer() when you want flat GTM-ready keys (si_context_*, si_commercial_state_id, etc.).