I don't like how this encourages bulk operation on this list. I think you should be publishing/discarding and operating on blocks individually, not as part of a massive full list update. 

Took me a while to figure out that the options were for JSON parsing. That kind of thing should not be allowed to slip into the model because it creates confusion. If `BlockAction` stays then the serialisation concern should be separated.