Adds selection event and serialization test

I think _INVALID should be last in the list