rework rules to read/write from nbt tag.  should be safer in the long
run, and is certainly easier to work with in the short-run