{"action":"closed","issue":{"url":"https://api.github.com/repos/antag99/retinazer/issues/5","labels_url":"https://api.github.com/repos/antag99/retinazer/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/antag99/retinazer/issues/5/comments","events_url":"https://api.github.com/repos/antag99/retinazer/issues/5/events","html_url":"https://github.com/antag99/retinazer/issues/5","id":101155314,"number":5,"title":"Change semantics of entity operations","user":{"login":"antag99","id":7714919,"avatar_url":"https://avatars.githubusercontent.com/u/7714919?v=3","gravatar_id":"","url":"https://api.github.com/users/antag99","html_url":"https://github.com/antag99","followers_url":"https://api.github.com/users/antag99/followers","following_url":"https://api.github.com/users/antag99/following{/other_user}","gists_url":"https://api.github.com/users/antag99/gists{/gist_id}","starred_url":"https://api.github.com/users/antag99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antag99/subscriptions","organizations_url":"https://api.github.com/users/antag99/orgs","repos_url":"https://api.github.com/users/antag99/repos","events_url":"https://api.github.com/users/antag99/events{/privacy}","received_events_url":"https://api.github.com/users/antag99/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/antag99/retinazer/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":{"login":"antag99","id":7714919,"avatar_url":"https://avatars.githubusercontent.com/u/7714919?v=3","gravatar_id":"","url":"https://api.github.com/users/antag99","html_url":"https://github.com/antag99","followers_url":"https://api.github.com/users/antag99/followers","following_url":"https://api.github.com/users/antag99/following{/other_user}","gists_url":"https://api.github.com/users/antag99/gists{/gist_id}","starred_url":"https://api.github.com/users/antag99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antag99/subscriptions","organizations_url":"https://api.github.com/users/antag99/orgs","repos_url":"https://api.github.com/users/antag99/repos","events_url":"https://api.github.com/users/antag99/events{/privacy}","received_events_url":"https://api.github.com/users/antag99/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/antag99/retinazer/milestones/1","html_url":"https://github.com/antag99/retinazer/milestones/retinazer-0.1.0","labels_url":"https://api.github.com/repos/antag99/retinazer/milestones/1/labels","id":1247919,"number":1,"title":"retinazer-0.1.0","description":"Initial development version","creator":{"login":"antag99","id":7714919,"avatar_url":"https://avatars.githubusercontent.com/u/7714919?v=3","gravatar_id":"","url":"https://api.github.com/users/antag99","html_url":"https://github.com/antag99","followers_url":"https://api.github.com/users/antag99/followers","following_url":"https://api.github.com/users/antag99/following{/other_user}","gists_url":"https://api.github.com/users/antag99/gists{/gist_id}","starred_url":"https://api.github.com/users/antag99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antag99/subscriptions","organizations_url":"https://api.github.com/users/antag99/orgs","repos_url":"https://api.github.com/users/antag99/repos","events_url":"https://api.github.com/users/antag99/events{/privacy}","received_events_url":"https://api.github.com/users/antag99/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":6,"state":"open","created_at":"2015-08-10T10:07:28Z","updated_at":"2015-08-16T19:11:01Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-08-15T09:26:45Z","updated_at":"2015-08-16T19:11:01Z","closed_at":"2015-08-16T19:11:01Z","body":"The goal of this ticket is to change the semantics of entity operations, resulting in the following behavior:\r\n\r\n- Entities are added immediately\r\n- Components are added immediately\r\n- Entities removals are deferred\r\n- Component removals are deferred\r\n- All insertions/removals of entities in family sets are deferred\r\n\r\nThis has the effect of not allowing to add a component to an entity when it already has the component.\r\n\r\nExecution of deferred operations go as follows:\r\n\r\n- Entities are inserted into family sets (dispatching notifications)\r\n- Entities are removed from family sets (dispatching notifications)\r\n- Components are removed from entities"}}