Stored rules in list order (precedence order). Read-only snapshot.
Drop the rule keyed on groupRef. Returns true if anything changed.
Move the rule keyed on groupRef directly above / below anchor.
Both must already be stored. Returns true on a successful move.
Replace the rule with the same groupRef in place, or append at the
tail when none exists. The caller supplies the fully-built rule.
Like upsertNotifyRule, but a newly-inserted rule lands at
position (clamped to the list bounds) rather than at the tail. An
existing rule with the same groupRef is still replaced in place and
never moved. The caller owns the position semantics (e.g. reserved-rank
ordering) — this stays dumb storage.
Public method surface — methods only, per the inter-stuff contract.
_notifyRulesis a public field so the Hydrator can reflect into it, but it is NOT part of the contract surface; external code goes through these methods (or, for resolution,SocialApi).