Define a proper abstraction for project names and use it elsewhere in
the codebase.
The character `@` is formally reserved for PR previews from this point,
and any project names using it must be well-formed: contain no more
than a single `@` followed by a positive number.