Basic Types
The parser does not impose restrictions on type naming. The type name must begin with the characters [a-zA-Z\x80-\xff] (any letter) and _ (underscore) and can contain any characters within the limit [a-zA-Z0-9\x80-\xff] (any letter), as well as the characters _ (underscore) and - (dash).
In this case, the only difference from the PHP grammar is that a dash (-) symbol is allowed in the middle of the name.
In addition, it is worth noting that the case-insensitive names true, false and null are registered PHP literals, so their use as a custom type name is unacceptable.
Namespace
Each name can contain a namespace symbol (\ — backslash), which is similar to that in PHP. The separator can be located either in the middle or at the beginning of any Identifier. End position is not allowed.
The namespace delimiter can be used in conjunction with keywords such as true, false, or null to explicitly indicate a type reference.