cue: allow # and disallow #0 as identifiers

At a later point, we will probably rewrite `#: "x": y` to `#("x"): y`. This
change will make that easier. At that time, we may prohibit # again.

We also disallow #<num> for now. We may want to assign special meaning to that later, so we will reserve them for now.

See https://github.com/cuelang/cue/discussions/388

Change-Id: I9095df572db1da34525267b06c7ed0b021de1ca9
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/6101
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/encoding/jsonschema/jsonschema.go b/encoding/jsonschema/jsonschema.go
index 398cbbf..00027c6 100644
--- a/encoding/jsonschema/jsonschema.go
+++ b/encoding/jsonschema/jsonschema.go
@@ -74,8 +74,8 @@
 	//
 	// The default mapping is
 	//    {}                     {}
-	//    {"definitions", foo}   {#foo} or {#def, foo}
-	//    {"$defs", foo}         {#foo} or {#def, foo}
+	//    {"definitions", foo}   {#foo} or {#, foo}
+	//    {"$defs", foo}         {#foo} or {#, foo}
 	Map func(pos token.Pos, path []string) ([]ast.Label, error)
 
 	// TODO: configurability to make it compatible with OpenAPI, such as