{"action":"created","issue":{"url":"https://api.github.com/repos/toml-lang/toml/issues/65","labels_url":"https://api.github.com/repos/toml-lang/toml/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/toml-lang/toml/issues/65/comments","events_url":"https://api.github.com/repos/toml-lang/toml/issues/65/events","html_url":"https://github.com/toml-lang/toml/issues/65","id":11332960,"number":65,"title":"Keys should not allow arbitrary characters: they should be `[a-zA-Z_]\\w*` only","user":{"login":"mrflip","id":6128,"avatar_url":"https://avatars.githubusercontent.com/u/6128?v=3","gravatar_id":"","url":"https://api.github.com/users/mrflip","html_url":"https://github.com/mrflip","followers_url":"https://api.github.com/users/mrflip/followers","following_url":"https://api.github.com/users/mrflip/following{/other_user}","gists_url":"https://api.github.com/users/mrflip/gists{/gist_id}","starred_url":"https://api.github.com/users/mrflip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrflip/subscriptions","organizations_url":"https://api.github.com/users/mrflip/orgs","repos_url":"https://api.github.com/users/mrflip/repos","events_url":"https://api.github.com/users/mrflip/events{/privacy}","received_events_url":"https://api.github.com/users/mrflip/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":26,"created_at":"2013-02-24T11:29:40Z","updated_at":"2015-01-15T21:26:57Z","closed_at":"2015-01-15T21:26:57Z","body":"I'm surprised that keys are allowed to be arbitrary characters. What is the configuration file use case for this? Can those cases be just as well handled as a literal hash, or as an array of pairs? Allowing funny characters seems to go against the \"simple as possible\" ethos.\r\n\r\nI think of keys as living in the control path, not data path, and thus predictability should win over expressiveness (no matter how fun it would to configure `☃.♛=シ`). I can't say for sure what would go wrong, but allowing nulls, vertical tab characters, funny unicode spaces and so forth sounds like an eventual security flaw. Unicode opens a lot of \"there should only be one way to do anything\" holes: for just one example, the strings `dīáçṙïtĭč` and `dīáçṙïtĭč` are semantically equivalent but not byte-comparable (one has combining diacritics, the other precomposed). Are two keys equal if they character comparable, or only if they are byte-comparable? \r\n\r\nThe spec should require keys to be identifier-like: they must start with a letter or underbar, and contain only letter, underbar or number. That is:  `[a-zA-Z_]\\w*`."},"comment":{"url":"https://api.github.com/repos/toml-lang/toml/issues/comments/70164920","html_url":"https://github.com/toml-lang/toml/issues/65#issuecomment-70164920","issue_url":"https://api.github.com/repos/toml-lang/toml/issues/65","id":70164920,"user":{"login":"mojombo","id":1,"avatar_url":"https://avatars.githubusercontent.com/u/1?v=3","gravatar_id":"","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User","site_admin":false},"created_at":"2015-01-15T21:26:57Z","updated_at":"2015-01-15T21:26:57Z","body":"Resolved by #283."}}