{"action":"created","issue":{"url":"https://api.github.com/repos/json-schema-org/json-schema-spec/issues/67","repository_url":"https://api.github.com/repos/json-schema-org/json-schema-spec","labels_url":"https://api.github.com/repos/json-schema-org/json-schema-spec/issues/67/labels{/name}","comments_url":"https://api.github.com/repos/json-schema-org/json-schema-spec/issues/67/comments","events_url":"https://api.github.com/repos/json-schema-org/json-schema-spec/issues/67/events","html_url":"https://github.com/json-schema-org/json-schema-spec/issues/67","id":178759062,"number":67,"title":"[Proposal] JSON UI Schema","user":{"login":"Anthropic","id":1182507,"avatar_url":"https://avatars0.githubusercontent.com/u/1182507?v=3","gravatar_id":"","url":"https://api.github.com/users/Anthropic","html_url":"https://github.com/Anthropic","followers_url":"https://api.github.com/users/Anthropic/followers","following_url":"https://api.github.com/users/Anthropic/following{/other_user}","gists_url":"https://api.github.com/users/Anthropic/gists{/gist_id}","starred_url":"https://api.github.com/users/Anthropic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Anthropic/subscriptions","organizations_url":"https://api.github.com/users/Anthropic/orgs","repos_url":"https://api.github.com/users/Anthropic/repos","events_url":"https://api.github.com/users/Anthropic/events{/privacy}","received_events_url":"https://api.github.com/users/Anthropic/received_events","type":"User","site_admin":false},"labels":[{"id":228372227,"url":"https://api.github.com/repos/json-schema-org/json-schema-spec/labels/Type:%20Enhancement","name":"Type: Enhancement","color":"84b6eb","default":false},{"id":500636976,"url":"https://api.github.com/repos/json-schema-org/json-schema-spec/labels/Type:%20Question","name":"Type: Question","color":"cc317c","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/json-schema-org/json-schema-spec/milestones/3","html_url":"https://github.com/json-schema-org/json-schema-spec/milestone/3","labels_url":"https://api.github.com/repos/json-schema-org/json-schema-spec/milestones/3/labels","id":2166252,"number":3,"title":"draft-future","description":"","creator":{"login":"awwright","id":437517,"avatar_url":"https://avatars0.githubusercontent.com/u/437517?v=3","gravatar_id":"","url":"https://api.github.com/users/awwright","html_url":"https://github.com/awwright","followers_url":"https://api.github.com/users/awwright/followers","following_url":"https://api.github.com/users/awwright/following{/other_user}","gists_url":"https://api.github.com/users/awwright/gists{/gist_id}","starred_url":"https://api.github.com/users/awwright/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awwright/subscriptions","organizations_url":"https://api.github.com/users/awwright/orgs","repos_url":"https://api.github.com/users/awwright/repos","events_url":"https://api.github.com/users/awwright/events{/privacy}","received_events_url":"https://api.github.com/users/awwright/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":2,"state":"open","created_at":"2016-11-30T13:10:18Z","updated_at":"2017-04-03T21:23:49Z","due_on":null,"closed_at":null},"comments":32,"created_at":"2016-09-23T01:05:20Z","updated_at":"2017-05-09T18:34:33Z","closed_at":null,"body":"I propose a separate schema extension for the **view** definition in the same way hypermedia was separated into its own schema.\r\n\r\n[JSON Schema Form](https://github.com/json-schema-form/angular-schema-form) has a form definition that is array based for ordering, with the majority of its attributes taken from json-schema. It also has titleMap array to define labels for enum fields and can define field types (including custom field types) to use for displaying the field.\r\n\r\nAs it describes nothing more than a type name it is generator agnostic and not destined to be specific to our Angular implementation. In fact we are already working on making a plain JavaScript version and there is already a React implementation.\r\n\r\nThe main purpose of raising this here is to highlight a need, in our view, to **avoid allowing view based attributes to diminish the data definition purity of the json-schema specification**.\r\n\r\n[Choices](https://github.com/json-schema/json-schema/wiki/choices-%28v5-proposal-to-enhance-enum%29) and [Enum Names](https://github.com/json-schema-org/json-schema-spec/issues/57) would both bring changes to json-schema that would confuse any existing view based frameworks like ours and others while bringing little value and breaking model view separation of concerns. A full **json-ui-schema** would provide the missing view properties while keeping view and model separate, as they should be in our view.\r\n\r\nIn addition to a ui-schema, the same way the main json-schema has an extension for hyper media, we would also like consideration for a json-rules-schema for controller/field logic (if/when etc..) and json-flow-schema for workflow/wizard/state management keywords.\r\n\r\n**I am interested in feedback primarily on the json-ui-schema proposal.** But all feedback is welcomed.\r\n\r\nChild issues:\r\n#252 2017-02-16"},"comment":{"url":"https://api.github.com/repos/json-schema-org/json-schema-spec/issues/comments/300261143","html_url":"https://github.com/json-schema-org/json-schema-spec/issues/67#issuecomment-300261143","issue_url":"https://api.github.com/repos/json-schema-org/json-schema-spec/issues/67","id":300261143,"user":{"login":"handrews","id":2358015,"avatar_url":"https://avatars1.githubusercontent.com/u/2358015?v=3","gravatar_id":"","url":"https://api.github.com/users/handrews","html_url":"https://github.com/handrews","followers_url":"https://api.github.com/users/handrews/followers","following_url":"https://api.github.com/users/handrews/following{/other_user}","gists_url":"https://api.github.com/users/handrews/gists{/gist_id}","starred_url":"https://api.github.com/users/handrews/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/handrews/subscriptions","organizations_url":"https://api.github.com/users/handrews/orgs","repos_url":"https://api.github.com/users/handrews/repos","events_url":"https://api.github.com/users/handrews/events{/privacy}","received_events_url":"https://api.github.com/users/handrews/received_events","type":"User","site_admin":false},"created_at":"2017-05-09T18:34:33Z","updated_at":"2017-05-09T18:34:33Z","body":"The advantage is that it actually works for both UI and validation.  Being able to re-use existing keywords makes it both more flexible and more readable than the positional tuples for \"choices\", and avoids the duplication required by \"enumNames\".\r\n\r\nAnyway, we can debate that specific issue when we get into the details.  One solution might just be an alias for \"oneOf\" that is friendlier to UI usage so that we don't add much more implementation work for something that should already be present in implementations."}}
{"actor":{"display_login":"handrews"}}