payload: {"action":"created","comment":{"url":"https://api.github.com/repos/pkmn-cc/strawman/pulls/comments/336201091","pull_request_review_id":303512950,"id":336201091,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMzNjIwMTA5MQ==","diff_hunk":"@@ -0,0 +1,552 @@\n+// Exported native API for @smogon/data\n+//\n+// DISCLAIMER:\n+//\n+//   Not meant to replace Dex/BattleDex: consumers can delegate to this native API\n+//   and put their own layer on top which can extend or alter the functionality.\n+//\n+// CONSIDERATIONS:\n+//\n+//    - Approach: async APIs are moved to top level so that data load can be done\n+//      once and then the rest of the APIs aren't cluttered with `await` everywhere.\n+//      Furthermore, individual pieces can be loaded (just `Abilities` vs. all data\n+//      types) if desired.\n+//    - `getByID` APIs are important for removing the `toID` call in `get` methods\n+//      for when we already know through typechecking that we have an ID. String\n+//      getters have been removed - callees can manually called `toID` first if they\n+//      dont have an ID (which should be very rare unless its human-input).\n+//    - Descriptions are UI only and can be large so aren't included in the Dex by\n+//      default, but they may be loaded in bulk asynchronously for the desired\n+//      languages.\n+//    - Similarly, SpeciesDetails which are purely cosmetic or used by the Validator\n+//      or for non-competitive reasons are offloaded. eg. learnset details are very\n+//      large and not needed in many circumstances.\n+//    - All other APIs are loaded together for a gen (+ mod) - it's rare a consumer\n+//      cares *just* about Abilities or *just* Moves, and if they do and are in an\n+//      environment where loading more is a concern they can implement their own\n+//      splitting on top of the raw data files.\n+//    - The aliases.json data is used internally (to implement getByID's) but is\n+//      not exported.\n+//    - The individual APIs (eg. Abilities) are not just Maps, as their lookup function\n+//      is more sophisticated (handles aliases, caching, etc).\n+//    - Internally, references can be resolved lazily through Javascript getters (though\n+//      need to use `Object.defineProperty(Foo.prototype, ...)` to be able to make\n+//      enumerable) to avoid object instantiation overhead and avoid creating objects for\n+//      fields which are never read.\n+//    - Map will need to be polyfilled or support for browsers before IE11 will need to\n+//      be dropped.\n+//\n+//  *** TODO ***:\n+//\n+//   - 'Species'/'SpeciesDetails' names are problematic as they are plural\n+//   - Demonstrate how PS can wrap the specific types and still extend them in OMs\n+//   - All the fields in the JSON should be able to be `null` as a sentinel for removal,\n+//     can implement this generically using higher order Typescript utility type\n+//     functionality.\n+//   - 'CommonFoo' and 'JSONFoo' naming could use bikeshedding!\n+//   - Review fields to ensure optional fields are made required in the rich APIs where\n+//     it makes sense to do so.\n+//\n+\n+// core.ts\n+\n+type ID = '' | string & {__isID: true};\n+toID(s: string): ID;\n+\n+type Generation = 1 | 2 | 3 | 4 | 5 | 6 | 7;\n+// NOTE: CAP is not currently considered a mod but should be...\n+type Mod = 'LGPE' | 'Stadium' | 'CAP' | 'SSB' | 'Next' | 'PiC' | 'Mix And Mega' | 'VGC 17';\n+\n+type WeatherName =\n+  | 'Sand'\n+  | 'Sun'\n+  | 'Rain'\n+  | 'Hail'\n+  | 'Harsh Sunshine'\n+  | 'Heavy Rain'\n+  | 'Strong Winds';\n+\n+type StatusName = 'par' | 'psn' | 'frz' | 'slp' | 'brn' | 'tox';\n+\n+// data.ts\n+\n+type DataKind = 'Ability' | 'Move' | 'Item' | 'Species';\n+type Nonstandard = 'Glitch' | 'Past' | 'Future' | 'CAP' | 'LGPE' | 'Pokestar' | 'Custom';\n+\n+interface JSONData extends Omit<Data, 'id' | 'kind' | 'num' | 'gen'> {}\n+interface Data {\n+  id: ID;\n+  kind: DataKind;\n+  name: string;\n+  gen: Generation;\n+  isUnreleased?: boolean;\n+  isNonstandard?: Nonstandard;","path":"index.ts","position":83,"original_position":83,"commit_id":"65d31bf22045fcc7fa0a735d79727fc6e4d35c30","original_commit_id":"65d31bf22045fcc7fa0a735d79727fc6e4d35c30","user":{"login":"monsanto","id":247721,"node_id":"MDQ6VXNlcjI0NzcyMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/247721?v=4","gravatar_id":"","url":"https://api.github.com/users/monsanto","html_url":"https://github.com/monsanto","followers_url":"https://api.github.com/users/monsanto/followers","following_url":"https://api.github.com/users/monsanto/following{/other_user}","gists_url":"https://api.github.com/users/monsanto/gists{/gist_id}","starred_url":"https://api.github.com/users/monsanto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/monsanto/subscriptions","organizations_url":"https://api.github.com/users/monsanto/orgs","repos_url":"https://api.github.com/users/monsanto/repos","events_url":"https://api.github.com/users/monsanto/events{/privacy}","received_events_url":"https://api.github.com/users/monsanto/received_events","type":"User","site_admin":false},"body":"I think we'd remove `?` here","created_at":"2019-10-17T20:05:09Z","updated_at":"2019-10-17T20:05:09Z","html_url":"https://github.com/pkmn-cc/strawman/pull/1#discussion_r336201091","pull_request_url":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/pkmn-cc/strawman/pulls/comments/336201091"},"html":{"href":"https://github.com/pkmn-cc/strawman/pull/1#discussion_r336201091"},"pull_request":{"href":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1","id":329024924,"node_id":"MDExOlB1bGxSZXF1ZXN0MzI5MDI0OTI0","html_url":"https://github.com/pkmn-cc/strawman/pull/1","diff_url":"https://github.com/pkmn-cc/strawman/pull/1.diff","patch_url":"https://github.com/pkmn-cc/strawman/pull/1.patch","issue_url":"https://api.github.com/repos/pkmn-cc/strawman/issues/1","number":1,"state":"open","locked":false,"title":"Native API","user":{"login":"scheibo","id":117249,"node_id":"MDQ6VXNlcjExNzI0OQ==","avatar_url":"https://avatars1.githubusercontent.com/u/117249?v=4","gravatar_id":"","url":"https://api.github.com/users/scheibo","html_url":"https://github.com/scheibo","followers_url":"https://api.github.com/users/scheibo/followers","following_url":"https://api.github.com/users/scheibo/following{/other_user}","gists_url":"https://api.github.com/users/scheibo/gists{/gist_id}","starred_url":"https://api.github.com/users/scheibo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scheibo/subscriptions","organizations_url":"https://api.github.com/users/scheibo/orgs","repos_url":"https://api.github.com/users/scheibo/repos","events_url":"https://api.github.com/users/scheibo/events{/privacy}","received_events_url":"https://api.github.com/users/scheibo/received_events","type":"User","site_admin":false},"body":"","created_at":"2019-10-17T01:29:47Z","updated_at":"2019-10-17T20:05:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e0b0140b19b1be5b56fd1f54cc6c15344751c169","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1/commits","review_comments_url":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1/comments","review_comment_url":"https://api.github.com/repos/pkmn-cc/strawman/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pkmn-cc/strawman/issues/1/comments","statuses_url":"https://api.github.com/repos/pkmn-cc/strawman/statuses/65d31bf22045fcc7fa0a735d79727fc6e4d35c30","head":{"label":"pkmn-cc:strawman","ref":"strawman","sha":"65d31bf22045fcc7fa0a735d79727fc6e4d35c30","user":{"login":"pkmn-cc","id":11462095,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNDYyMDk1","avatar_url":"https://avatars2.githubusercontent.com/u/11462095?v=4","gravatar_id":"","url":"https://api.github.com/users/pkmn-cc","html_url":"https://github.com/pkmn-cc","followers_url":"https://api.github.com/users/pkmn-cc/followers","following_url":"https://api.github.com/users/pkmn-cc/following{/other_user}","gists_url":"https://api.github.com/users/pkmn-cc/gists{/gist_id}","starred_url":"https://api.github.com/users/pkmn-cc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkmn-cc/subscriptions","organizations_url":"https://api.github.com/users/pkmn-cc/orgs","repos_url":"https://api.github.com/users/pkmn-cc/repos","events_url":"https://api.github.com/users/pkmn-cc/events{/privacy}","received_events_url":"https://api.github.com/users/pkmn-cc/received_events","type":"Organization","site_admin":false},"repo":{"id":215676920,"node_id":"MDEwOlJlcG9zaXRvcnkyMTU2NzY5MjA=","name":"strawman","full_name":"pkmn-cc/strawman","private":false,"owner":{"login":"pkmn-cc","id":11462095,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNDYyMDk1","avatar_url":"https://avatars2.githubusercontent.com/u/11462095?v=4","gravatar_id":"","url":"https://api.github.com/users/pkmn-cc","html_url":"https://github.com/pkmn-cc","followers_url":"https://api.github.com/users/pkmn-cc/followers","following_url":"https://api.github.com/users/pkmn-cc/following{/other_user}","gists_url":"https://api.github.com/users/pkmn-cc/gists{/gist_id}","starred_url":"https://api.github.com/users/pkmn-cc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkmn-cc/subscriptions","organizations_url":"https://api.github.com/users/pkmn-cc/orgs","repos_url":"https://api.github.com/users/pkmn-cc/repos","events_url":"https://api.github.com/users/pkmn-cc/events{/privacy}","received_events_url":"https://api.github.com/users/pkmn-cc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/pkmn-cc/strawman","description":null,"fork":false,"url":"https://api.github.com/repos/pkmn-cc/strawman","forks_url":"https://api.github.com/repos/pkmn-cc/strawman/forks","keys_url":"https://api.github.com/repos/pkmn-cc/strawman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pkmn-cc/strawman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pkmn-cc/strawman/teams","hooks_url":"https://api.github.com/repos/pkmn-cc/strawman/hooks","issue_events_url":"https://api.github.com/repos/pkmn-cc/strawman/issues/events{/number}","events_url":"https://api.github.com/repos/pkmn-cc/strawman/events","assignees_url":"https://api.github.com/repos/pkmn-cc/strawman/assignees{/user}","branches_url":"https://api.github.com/repos/pkmn-cc/strawman/branches{/branch}","tags_url":"https://api.github.com/repos/pkmn-cc/strawman/tags","blobs_url":"https://api.github.com/repos/pkmn-cc/strawman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pkmn-cc/strawman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pkmn-cc/strawman/git/refs{/sha}","trees_url":"https://api.github.com/repos/pkmn-cc/strawman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pkmn-cc/strawman/statuses/{sha}","languages_url":"https://api.github.com/repos/pkmn-cc/strawman/languages","stargazers_url":"https://api.github.com/repos/pkmn-cc/strawman/stargazers","contributors_url":"https://api.github.com/repos/pkmn-cc/strawman/contributors","subscribers_url":"https://api.github.com/repos/pkmn-cc/strawman/subscribers","subscription_url":"https://api.github.com/repos/pkmn-cc/strawman/subscription","commits_url":"https://api.github.com/repos/pkmn-cc/strawman/commits{/sha}","git_commits_url":"https://api.github.com/repos/pkmn-cc/strawman/git/commits{/sha}","comments_url":"https://api.github.com/repos/pkmn-cc/strawman/comments{/number}","issue_comment_url":"https://api.github.com/repos/pkmn-cc/strawman/issues/comments{/number}","contents_url":"https://api.github.com/repos/pkmn-cc/strawman/contents/{+path}","compare_url":"https://api.github.com/repos/pkmn-cc/strawman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pkmn-cc/strawman/merges","archive_url":"https://api.github.com/repos/pkmn-cc/strawman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pkmn-cc/strawman/downloads","issues_url":"https://api.github.com/repos/pkmn-cc/strawman/issues{/number}","pulls_url":"https://api.github.com/repos/pkmn-cc/strawman/pulls{/number}","milestones_url":"https://api.github.com/repos/pkmn-cc/strawman/milestones{/number}","notifications_url":"https://api.github.com/repos/pkmn-cc/strawman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pkmn-cc/strawman/labels{/name}","releases_url":"https://api.github.com/repos/pkmn-cc/strawman/releases{/id}","deployments_url":"https://api.github.com/repos/pkmn-cc/strawman/deployments","created_at":"2019-10-17T01:28:30Z","updated_at":"2019-10-17T01:28:41Z","pushed_at":"2019-10-17T19:46:05Z","git_url":"git://github.com/pkmn-cc/strawman.git","ssh_url":"git@github.com:pkmn-cc/strawman.git","clone_url":"https://github.com/pkmn-cc/strawman.git","svn_url":"https://github.com/pkmn-cc/strawman","homepage":null,"size":4,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"pkmn-cc:master","ref":"master","sha":"5a79a95c96642b9bfa94509aa1925bc16572f583","user":{"login":"pkmn-cc","id":11462095,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNDYyMDk1","avatar_url":"https://avatars2.githubusercontent.com/u/11462095?v=4","gravatar_id":"","url":"https://api.github.com/users/pkmn-cc","html_url":"https://github.com/pkmn-cc","followers_url":"https://api.github.com/users/pkmn-cc/followers","following_url":"https://api.github.com/users/pkmn-cc/following{/other_user}","gists_url":"https://api.github.com/users/pkmn-cc/gists{/gist_id}","starred_url":"https://api.github.com/users/pkmn-cc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkmn-cc/subscriptions","organizations_url":"https://api.github.com/users/pkmn-cc/orgs","repos_url":"https://api.github.com/users/pkmn-cc/repos","events_url":"https://api.github.com/users/pkmn-cc/events{/privacy}","received_events_url":"https://api.github.com/users/pkmn-cc/received_events","type":"Organization","site_admin":false},"repo":{"id":215676920,"node_id":"MDEwOlJlcG9zaXRvcnkyMTU2NzY5MjA=","name":"strawman","full_name":"pkmn-cc/strawman","private":false,"owner":{"login":"pkmn-cc","id":11462095,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNDYyMDk1","avatar_url":"https://avatars2.githubusercontent.com/u/11462095?v=4","gravatar_id":"","url":"https://api.github.com/users/pkmn-cc","html_url":"https://github.com/pkmn-cc","followers_url":"https://api.github.com/users/pkmn-cc/followers","following_url":"https://api.github.com/users/pkmn-cc/following{/other_user}","gists_url":"https://api.github.com/users/pkmn-cc/gists{/gist_id}","starred_url":"https://api.github.com/users/pkmn-cc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkmn-cc/subscriptions","organizations_url":"https://api.github.com/users/pkmn-cc/orgs","repos_url":"https://api.github.com/users/pkmn-cc/repos","events_url":"https://api.github.com/users/pkmn-cc/events{/privacy}","received_events_url":"https://api.github.com/users/pkmn-cc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/pkmn-cc/strawman","description":null,"fork":false,"url":"https://api.github.com/repos/pkmn-cc/strawman","forks_url":"https://api.github.com/repos/pkmn-cc/strawman/forks","keys_url":"https://api.github.com/repos/pkmn-cc/strawman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pkmn-cc/strawman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pkmn-cc/strawman/teams","hooks_url":"https://api.github.com/repos/pkmn-cc/strawman/hooks","issue_events_url":"https://api.github.com/repos/pkmn-cc/strawman/issues/events{/number}","events_url":"https://api.github.com/repos/pkmn-cc/strawman/events","assignees_url":"https://api.github.com/repos/pkmn-cc/strawman/assignees{/user}","branches_url":"https://api.github.com/repos/pkmn-cc/strawman/branches{/branch}","tags_url":"https://api.github.com/repos/pkmn-cc/strawman/tags","blobs_url":"https://api.github.com/repos/pkmn-cc/strawman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pkmn-cc/strawman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pkmn-cc/strawman/git/refs{/sha}","trees_url":"https://api.github.com/repos/pkmn-cc/strawman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pkmn-cc/strawman/statuses/{sha}","languages_url":"https://api.github.com/repos/pkmn-cc/strawman/languages","stargazers_url":"https://api.github.com/repos/pkmn-cc/strawman/stargazers","contributors_url":"https://api.github.com/repos/pkmn-cc/strawman/contributors","subscribers_url":"https://api.github.com/repos/pkmn-cc/strawman/subscribers","subscription_url":"https://api.github.com/repos/pkmn-cc/strawman/subscription","commits_url":"https://api.github.com/repos/pkmn-cc/strawman/commits{/sha}","git_commits_url":"https://api.github.com/repos/pkmn-cc/strawman/git/commits{/sha}","comments_url":"https://api.github.com/repos/pkmn-cc/strawman/comments{/number}","issue_comment_url":"https://api.github.com/repos/pkmn-cc/strawman/issues/comments{/number}","contents_url":"https://api.github.com/repos/pkmn-cc/strawman/contents/{+path}","compare_url":"https://api.github.com/repos/pkmn-cc/strawman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pkmn-cc/strawman/merges","archive_url":"https://api.github.com/repos/pkmn-cc/strawman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pkmn-cc/strawman/downloads","issues_url":"https://api.github.com/repos/pkmn-cc/strawman/issues{/number}","pulls_url":"https://api.github.com/repos/pkmn-cc/strawman/pulls{/number}","milestones_url":"https://api.github.com/repos/pkmn-cc/strawman/milestones{/number}","notifications_url":"https://api.github.com/repos/pkmn-cc/strawman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pkmn-cc/strawman/labels{/name}","releases_url":"https://api.github.com/repos/pkmn-cc/strawman/releases{/id}","deployments_url":"https://api.github.com/repos/pkmn-cc/strawman/deployments","created_at":"2019-10-17T01:28:30Z","updated_at":"2019-10-17T01:28:41Z","pushed_at":"2019-10-17T19:46:05Z","git_url":"git://github.com/pkmn-cc/strawman.git","ssh_url":"git@github.com:pkmn-cc/strawman.git","clone_url":"https://github.com/pkmn-cc/strawman.git","svn_url":"https://github.com/pkmn-cc/strawman","homepage":null,"size":4,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1"},"html":{"href":"https://github.com/pkmn-cc/strawman/pull/1"},"issue":{"href":"https://api.github.com/repos/pkmn-cc/strawman/issues/1"},"comments":{"href":"https://api.github.com/repos/pkmn-cc/strawman/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/pkmn-cc/strawman/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pkmn-cc/strawman/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/pkmn-cc/strawman/statuses/65d31bf22045fcc7fa0a735d79727fc6e4d35c30"}},"author_association":"MEMBER"}}
other: {"actor":{"display_login":"monsanto"}}