This is dependent upon #1927608: Remove the tight coupling between Block Plugins and Block Entities
Block::set() keeps the Block entity values accurate and the plugin's configuration values accurate at the same time. We can't afford for the basic behavior to change, but we should discuss if it can be simplified and what possible approaches there might be to that.
My only serious thought on how this could be simplified is by moving things the block entity would consider "settings" to a settings array in the configuration. This seems a small concession to make on the part of the plugins, but in order to truly simplify the set() method it would have to absolutely set the value of the settings array instead of being additive to it (which is what the current code does).
I'm open to other ideas here, and am not really even sold on my idea.
Eclipse