Q: What are the rules for the names I can give to a GRASS map?
A: GRASS map names cannot contain control characters (<32), 8-bit characters (>=128), space, DEL (127), or any of /"'@,=* (slash, double quote, single quote, at, comma, equals, asterisk).
If you want the map to be usable on MS-Windows, you also cannot use any of \:?<>| (backslash, colon, question mark, less-than, greater-than, vertical bar), as those aren't allowed in filenames on MS-Windows.
If a map name contains any of #()+-%><!&|?:;~ (hash, parentheses, square brackets, plus, minus, percent, greater-than, less-than, exclamation mark, ampersand, vertical bar, question mark, colon, semicolon, tilde), it must be quoted within r.mapcalc, as must any name which is a valid integer or floating-point literal.
Finally, vector map names are limited to valid SQL table names, which means that they must begin with a letter, can only contain letters, digits and underscores, and must not be an SQL keyword.