{"action":"created","issue":{"url":"https://api.github.com/repos/commonform/commonform-validate/issues/5","labels_url":"https://api.github.com/repos/commonform/commonform-validate/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/commonform/commonform-validate/issues/5/comments","events_url":"https://api.github.com/repos/commonform/commonform-validate/issues/5/events","html_url":"https://github.com/commonform/commonform-validate/pull/5","id":109699151,"number":5,"title":"Remove blank metadata","user":{"login":"kemitchell","id":205760,"avatar_url":"https://avatars.githubusercontent.com/u/205760?v=3","gravatar_id":"","url":"https://api.github.com/users/kemitchell","html_url":"https://github.com/kemitchell","followers_url":"https://api.github.com/users/kemitchell/followers","following_url":"https://api.github.com/users/kemitchell/following{/other_user}","gists_url":"https://api.github.com/users/kemitchell/gists{/gist_id}","starred_url":"https://api.github.com/users/kemitchell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kemitchell/subscriptions","organizations_url":"https://api.github.com/users/kemitchell/orgs","repos_url":"https://api.github.com/users/kemitchell/repos","events_url":"https://api.github.com/users/kemitchell/events{/privacy}","received_events_url":"https://api.github.com/users/kemitchell/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/commonform/commonform-validate/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-10-04T19:25:01Z","updated_at":"2015-10-09T16:35:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/commonform/commonform-validate/pulls/5","html_url":"https://github.com/commonform/commonform-validate/pull/5","diff_url":"https://github.com/commonform/commonform-validate/pull/5.diff","patch_url":"https://github.com/commonform/commonform-validate/pull/5.patch"},"body":"This pull request requires all fill-in-the-blanks to be encoded with empty string labels:\r\n\r\n```json\r\n{ \"content\": [ { \"blank\": \"\" } ] }\r\n```\r\n\r\nAt present, blanks must have a non-empty label string:\r\n\r\n```json\r\n{ \"content\": [ { \"blank\": \"Seller Name\" } ] }\r\n```\r\n\r\nThere are a few problems with the current approach:\r\n\r\n1. Two forms can vary only by the value of a blank label string.\r\n\r\n2. Recipients of completed forms can't guess what labels blanks had before they were completed.\r\n\r\n3. The content of blank label strings is entirely arbitrary.\r\n\r\nThere are also a few benefits:\r\n\r\n1. User interfaces for filling out blanks are trivial, since a label-to-value map is all that's needed. CLI does this with `--blanks values.json`. commonform.org does this with a table of form inputs.\r\n\r\n2. Labeled blanks correspond well to current practice in Word. \"[•]\" is fairly common, but \"[purchase price]\" and the like are the norm.\r\n\r\nEssentially, the current blanks-with-labels offer benefits from encoding metadata into the forms. This breaks with the general approach of keeping forms themselves as minimal as possible, and of avoiding situations where semantically equivalent forms hash differently.\r\n\r\nAnnotations could provide all of the benefits of labels, less a deterministic way to reference blanks to be filled in. For automatic completion, we would need something like `[FORM_DIGEST, BLANK_INDEX, VALUE]`. [markup](https://npmjs.com/packages/commonform-markup) might make this easier for command-line users by emitting both a form and a list of annotations corresponding to comments and blank metadata.\r\n\r\n@anseljh, I'd be really interested in your opinion on this."},"comment":{"url":"https://api.github.com/repos/commonform/commonform-validate/issues/comments/146923690","html_url":"https://github.com/commonform/commonform-validate/pull/5#issuecomment-146923690","issue_url":"https://api.github.com/repos/commonform/commonform-validate/issues/5","id":146923690,"user":{"login":"anseljh","id":2075772,"avatar_url":"https://avatars.githubusercontent.com/u/2075772?v=3","gravatar_id":"","url":"https://api.github.com/users/anseljh","html_url":"https://github.com/anseljh","followers_url":"https://api.github.com/users/anseljh/followers","following_url":"https://api.github.com/users/anseljh/following{/other_user}","gists_url":"https://api.github.com/users/anseljh/gists{/gist_id}","starred_url":"https://api.github.com/users/anseljh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anseljh/subscriptions","organizations_url":"https://api.github.com/users/anseljh/orgs","repos_url":"https://api.github.com/users/anseljh/repos","events_url":"https://api.github.com/users/anseljh/events{/privacy}","received_events_url":"https://api.github.com/users/anseljh/received_events","type":"User","site_admin":false},"created_at":"2015-10-09T16:35:29Z","updated_at":"2015-10-09T16:35:29Z","body":"@kemitchell I will take a close look over the weekend."}}