Merges a patch into the KV settings document, keeping only allow-listed names.
The filter is enforced here as well as in resolveSettings: a reader-side filter makes an
unlisted name inert, a writer-side one makes it unstorable, which matters once another reader
exists. A name mapped to null or '' is removed, not stored empty. PLAN is never accepted;
it has writePlan.
Merges a patch into the KV settings document, keeping only allow-listed names.
The filter is enforced here as well as in resolveSettings: a reader-side filter makes an unlisted name inert, a writer-side one makes it unstorable, which matters once another reader exists. A name mapped to
nullor''is removed, not stored empty.PLANis never accepted; it has writePlan.