optimization: only validate list items when value_type != object
proper comma usage
optimization: only validate dict items when key_type or value_type != object