Kinda cool, noticed you were using nip51 for this?
Discussion
Actually nip33 with my own key-value API that could be added to nostr-tools if #[4] wants it https://github.com/irislib/iris-messenger/blob/master/src/js/lib/nostr-tools/path.ts
It's a bit similar, but I would save individual keys instead of lists. For example: set('mute/[pubkey]', true). That way you can safely make concurrent / offline / high-latency edits from different devices without overwriting each others' lists. And you don't have to push the 10000 entries on the list every time.