No unnecessary complications. Complexity should be the result of complex expression, not arbitrary forced complexity. I love the idea of a language being a simple set of tools, but that can be combined in infinitely different simple and complex ways.
Esperanto is just that. With a base vocabulary far smaller than any language I can think of, it provides tools in the form of a few suffixes and prefixes (and the ability to stick word roots together) in order to build words in a sensible regular way.
For example, “-il” is a suffix that adds the meaning of a tool to perform the root word. So given the word “razi” which means “to shave”, without knowing beforehand, I can determine that “razilo” means “razor” i.e. a tool for which one can shave.
The prefix “mal-” when applied to a word, reverses it’s meaning! So if I know the word “bela” (meaning “beautiful”) I also know the word “malbela”, which means the opposite: ugly!
So if you can master the prefixes and suffixes, then every new word you learn isn’t just one new word, its a new word for every suffix and prefix you know! Efficient huh?