>Perhaps insert an `Unknown` or similar value at 0 and shift the rest?

I may be missing something, but I can't think of a use case where this would be needed.
 - When building a `TreeDefinition`, the user *should* know what's the type of `TreeEntryDefinition` he's adding
 - When reading an existing `Tree`, the parser *should* always be able to pick among the known values

At least, I hope so. Help?