A package name consists of one or more elements, separated by dots. An element is one or more characters, which can be lower-case letters, underscores, or digits. An element cannot begin with a digit.
Example: com.eblong.zarf.weather
Package names have nearly the same syntax as fully-qualified module names in Python. The only difference is that upper-case letters are not allowed.
Packages should use Java-style global-to-local hierarchical naming. (That is, it is best if your package names begin with a characteristic domain name, reversed. I am Zarf at eblong.com, so my packages will begin with com.eblong.zarf.)
Nothing enforces the hierarchical system. You could create a package named com.eblong.zarf.fan; it would not have any particular relation to my com.eblong.zarf.weather package. You could even use com.eblong.zarf. But throwing names into someone else's branch of the tree is confusing, so don't do it.
(For reasons of sanity, the web site will not accept uploads of packages with fewer than two elements. You can't grab com. It also reserves all names beginning with org.boodler.)