The RFC says that a name must be a string. A string in JSON is allowed to include whitespace characters, which includes newline. The proviso is that these characters must be escaped.
ValueCount ( List ( "a" ; "b\¶b" ; "c" ) ) // 3
ValueCount ( List ( "a" ; "b¶b" ; "c" ) ) // 4
ValueCount doesn't mind but it's easy to imagine it not surviving other uses cases. For instance, how does fmp handle variables with escaped characters? That's a fairly common usage for keys.Â
Let ( $b\¶b = "I'm a JSON key" ; $b¶b ) // no result
EvaluationError ( Evaluate ( "Let ( $" & "b¶b" & " = " & quote ("I'm a JSON key" ) & " ; $" & "b¶b" & " )" ) ) // 1204
malcolm