Either a string or a function. If a string, it must
be one of "check_unique", "minimal", "unique", or "universal".
If a function, it is invoked with a vector of minimal names and must
return minimal names, otherwise an error is thrown.
Minimal names are never NULL or NA. When an element doesn't
have a name, its minimal name is an empty string.
Unique names are unique. A suffix is appended to duplicate
names to make them unique.
Universal names are unique and syntactic, meaning that you can
safely use the names as variables without causing a syntax
error.
The "check_unique" option doesn't perform any name repair.
Instead, an error is raised if the names don't suit the
"unique" criteria.