I should be able to change the Collection of a Property
Summary: In particular, I should be able to go from ExactlyOne to Optional, and switch between Set and List.
The hard bit here is simply the serialization formats. Foolishly, I implemented ExactlyOne, Optional, and Set/List with different serializations. The reasoning made some sense -- to be able to tell what was what -- but in practice it doesn't matter (they're all lists under the hood), and it makes it extremely dangerous to switch formats.