{"action":"created","comment":{"url":"https://api.github.com/repos/IIIF/api/pulls/comments/186297288","pull_request_review_id":117849870,"id":186297288,"diff_hunk":"@@ -1,125 +1,263 @@\n ---\n-title: \"Presentation API 2.1.1 Change Log\"\n-title_override: \"Changes for IIIF Presentation API Version 2.1.1\"\n-id: presentation-api-211-change-log\n+title: \"Presentation API 3.0 Change Log\"\n+title_override: \"Changes for IIIF Presentation API Version 3.0\"\n+id: presentation-api-30-change-log\n layout: spec\n+cssversion: 3\n tags: [specifications, presentation-api, change-log]\n-major: 2\n-minor: 1\n-patch: 1\n+major: 3\n+minor: 0\n+patch: 0\n pre: final\n redirect_from:\n-  - /api/presentation/2.1/change-log-211.html\n+  - /api/presentation/3.0/change-log-30.html\n ---\n \n-This document is a companion to the [IIIF Presentation API Specification, Version 2.1.1][prezi-api]. It describes the editorial changes to the API specification made in this patch release, such as clarifications and typo corrections. It also describes corrections to related documents that are not [semantically versioned][semver], such as example resources and resources to manage transformation to and from the JSON-LD serialization.\n-\n-For the significant changes between 2.0 and 2.1, please see the [2.1 Change Log][changelog-21].\n+This document is a companion to the [IIIF Presentation API Specification, Version 3.0][prezi30]. It describes the changes to the API specification made in this major release, including ones that are backwards incompatible with [version 2.1.1][prezi21], the previous version.\n \n ## Table of Contents\n {:.no_toc}\n \n * Goes Here\n {:toc}\n \n-## 1. Editorial Changes\n \n-### 1.1. Clarify use of `viewingHint`\n+## 1. Breaking Changes\n+\n+### 1.1. External Specifications\n+\n+#### 1.1.1. Use JSON-LD 1.1\n+\n+JSON-LD remains the core serialization of the Presentation API. For version 3.0, some features of the JSON-LD Community Group specification make a significant improvement to the API's structure and consistency. While this specification is not a W3C Technical Recommendation at the time of release, the likelihood of the standardization process being successful is extremely high and the rewards have been judged to be worth the minimal risk of unintended incompatibility. Scoped contexts, language sets, and the ability to use `@none` in language maps make implementation significantly easier. See issue [#1192](https://github.com/IIIF/api/issues/1192).\n+\n+#### 1.1.2. Use Web Annotation Data Model\n+\n+Annotations remain a core feature of the Presentation API. Instead of the community specified Open Annotation model, version 3.0 adopts the W3C standard Web Annotation Data Model. The practical effects are limited but real, including changes to property names and classes. See issue [#496](https://github.com/IIIF/api/issues/496).\n+\n+\n+### 1.2. Property Naming and Semantics Changes\n+\n+Several existing properties were renamed for consistency, developer convenience, or to better reflect the intended semantics. Some of the semantics were also clarified based on implementation experience during previous versions.\n+\n+#### 1.2.1. Rename `@id` to `id`, `@type` to `type`\n+\n+These properties were renamed to enable Javascript developers to use the \"dot notation\" (`manifest.id`) instead of the square-brackets-based equivalent needed with the `@` character (`manifest['@id']`). This follows JSON-LD community best practices established by schema.org, the JSON-LD, Web Annotation and Social Web working groups. See issue [#590](https://github.com/IIIF/api/issues/590).\n+\n+#### 1.2.2. Rename `viewingHint` to `behavior`\n+\n+The `viewingHint` property was renamed to `behavior` as it was felt this more accurately reflected the intent, and avoids the image specific \"viewing\" which would be inappropriate for audio only content. As `viewingDirection` is inherently spatial, it was not renamed. The \"hint\" part was removed as some behaviors are very important to respect. See issue [#1073](https://github.com/IIIF/api/issues/1073).\n+\n+#### 1.2.3. Rename `attribution` to `requiredStatement`, allow `label`+`value`\n+\n+The `attribution` property could not specify the label to render with the value, and thus clients typically used \"Attribution\". This was not able to be internationalized, nor changed in contexts where \"Attribution\" has specific meaning (such as for artworks, where the attribution is assignment of the creator). The structure was changed to allow both `label` and `value`, following `metadata` entries, to solve this and the property renamed to remove the rights-specific semantics. See issue [#1287](https://github.com/IIIF/api/issues/1287).\n+\n+#### 1.2.4. Consolidate structural properties to `items` where possible\n+\n+The Presentation API classes in version 2.1.1 had both `members` to allow for mixed class lists (e.g. a Range can include both Canvases and other Ranges) and properties that were class specific. The `members` properties were renamed to `items` to follow the pattern established in the Web Annotation Data Model and ActivityStreams. The class specific properties were removed completely as insufficient to cover important use cases, and no longer necessary. See issue [#1145](https://github.com/IIIF/api/issues/1145).\n+\n+#### 1.2.5. Rename `license` to `rights`\n+\n+The `license` property was renamed to the more general `rights` to accommodate both rights statements and usage licenses. The value was further constrained to allow only Creative Commons URIs, RightsStatements.org URIs and URIs registered as extensions. This additional constraint is to allow clients to treat the property as an enumeration rather than free text, and implement URI specific behavior.  See issues [#644](https://github.com/IIIF/api/issues/644) and [#1479](https://github.com/IIIF/api/issues/1479)\n+\n+#### 1.2.6. Rename `description` to `summary`\n+\n+The `description` property was renamed to `summary` and the semantics changed to be a short descriptive text. The new property is a replacement for the content in `metadata`, for situations when a a table of label/value pairs is too much to render. Descriptions that are not short descriptive text are now recorded in `metadata` to allow for appropriate labeling. See issue [#1242](https://github.com/IIIF/api/issues/1242) and entry [1.3.1][prezi30-changelog-long-texts] below.\n+\n+#### 1.2.7. Rename `related` to `homepage`\n+\n+Similar to the above changes where non-actionable links and content are put into `metadata`, the `related` property was renamed to `homepage` with more specific semantics of being the home page of the resource. Links to other resources instead go in to `metadata` as HTML. As the intent is to be able to allow `homepage` specific UI affordances, such as an icon, the cardinality was reduced to zero or one. See issues [#1286](https://github.com/IIIF/api/issues/1286) and [#1484](https://github.com/IIIF/api/issues/1484).\n+\n+#### 1.2.8. Rename `contentLayer` to `supplementary`\n+\n+With the removal of the `Layer` class in favor of the standard `AnnotationCollection`, and the introduction of the `motivation` value `supplementing`, the `contentLayer` property was renamed to `supplementary`. This conveys that the Annotations in the Annot ation Collection are those with the `motivation` value `supplementing` while avoiding the use of the defunct class name. See issues [#1480](https://github.com/IIIF/api/issues/1480) and [#1174](https://github.com/IIIF/api/issues/1174).\n+\n+#### 1.2.9. Rename `startCanvas` to `start`, allow reference to part of a Canvas\n+\n+Following the pattern of removing class names from property names when unnecessary, combined with the change that the referenced resource might be part of a Canvas rather than the entire Canvas, the property was renamed. The increased scope for parts of Canvases is to allow jumping to a specific time point within a Canvas with a `duration` property. See [#1320](https://github.com/IIIF/api/issues/1320).\n+\n+#### 1.2.10. Rename `within` to `partOf`\n+\n+While renaming properties, `within` was renamed to `partOf` to follow the same naming convention in ActivityStreams and the Web Annotation Data Model. See issue [#1482](https://github.com/IIIF/api/issues/1482).\n+\n+### 1.3. Property Value Changes\n+\n+#### 1.3.1. Allow long texts in `metadata` values\n+{: #long-texts}\n+\n+Several use cases were raised for long texts that were not descriptions, such as bibliography citation lists or provenance histories for artworks. These texts did not have a home in the previous versions, as `metadata` only allowed short values and `description` was a description of the object not information about it. The adopted solution was to allow long texts within `metadata` values, also allowing `description` to be made more specifically a short textual summary. See issue [#1270](https://github.com/IIIF/api/issues/1270)\n+\n+#### 1.3.2. Allow non-images in `thumbnail`\n+\n+The semantics of `thumbnail` were changed to allow for non-image content resources such as short audio or video files. This is important with the addition of time-based media being painted into Canvases. See issue [#1176](https://github.com/IIIF/api/issues/1176).\n+\n+#### 1.3.3. Use language map pattern for `label`, `value`, `summary`\n+\n+A new pattern has been adopted for all textual values of a JSON object with the language code as the key (or `@none` if the language is not known) and the content as a string within an array as the value.  This pattern is much easier to implement and use than the previous `@value` / `@language` tuples pattern. The pattern relies on features that have been introduced by the JSON-LD Community Group, and are not yet standardized. See issue [#755](https://github.com/IIIF/api/issues/755).\n+\n+#### 1.3.4. Always require arrays if property can have multiple values\n+\n+Previous versions allowed a property that allowed multiple values to express a single value without an array. From version 3.0, if a property can ever have multiple values, then the value of the property is always an array. This reduces the type checking needed on values by clients as they can always iterate over the array, improving the developer experience. See issue [#1131](https://github.com/IIIF/api/issues/1131).\n+\n+#### 1.3.5. Require JSON object for all non-enumerable resources\n+\n+Similarly, to reduce type checking, all resources where the URIs cannot be enumerated (such as behaviors, viewing directions, rights statements and so forth) must be expressed as a JSON object with at least the `id` and `type` properties. This further reduces the type checking needed, as previously it could have been just the URI as a string.  See issue [#1284](https://github.com/IIIF/api/issues/1284).\n+\n+#### 1.3.6. Canvases always include AnnotationPages, not Annotations directly\n+\n+For consistency, and to allow all content to be external to the Manifest, all Annotations are now only included via `AnnotationPage` resources. This is a change from previous versions, where image Annotations were included directly to Canvases using `images`. See issue [#1068](https://github.com/IIIF/api/issues/1068).\n+\n+#### 1.3.7. Change requirements for `navDate` value\n+\n+Previous, the value of `navDate` was required to be in the UTC timezone. However this meant that the navigation date text generated was sometimes not the same date as the resource due to when midnight occurs in the local timezone versus in UTC. The solution adopted was to allow any timezone to be given in the value. See issue [#1296](https://github.com/IIIF/api/issues/1296).\n+\n+### 1.4. Classes Changes\n+\n+#### 1.4.1. Remove Sequence in favor of Ranges, `items` and `behavior` value `sequence`\n+\n+There has been a long outstanding question of how the order of Canvases in the `items` of Ranges and the order in the current Sequence interact. With further implementations from outside of the initial library-oriented domain, the need for an explicit order for views is also greatly decreased. The initial use case of multiple orderings for the content remains valid, but an edge case that can be supported using other patterns rather than requiring every Manifest to have an explicitly named Sequence. The replacement is a new `behavior` value or `sequence`. The model is simplified and clarified by this removal. See issues [#1471](https://github.com/IIIF/api/issues/1471), [#1489](https://github.com/IIIF/api/issues/1489) and further issues referenced from those.\n+\n+#### 1.4.2. Ranges express full extent\n+\n+In previous versions, it was unclear whether Ranges were intended to capture the extent of the content or simply the hierarchy. This is particularly important with time-based media, as the intent is not to skip between the navigation entry points when rendering the Range, but instead to play continuously. However a Range that captures the discrete sections of newspaper pages that make up an article does not include all of the intervening content.  This difference was reconciled by requiring Ranges to include all and only Canvases or segments of Canvases that are strictly part of the Range. At the same time, the structure was made easier to process by embedding child ranges within the parent, rather than referencing within a flat list.\n+See issue [#1070](https://github.com/IIIF/api/issues/1070) and the referenced documentation.\n+\n+#### 1.4.3. Remove Layer, AnnotationList in favor of AnnotationCollection, AnnotationPage\n+\n+With the adoption of the Web Annotation Data Model, we remove the IIIF specific Layer in favor of the standard AnnotationCollection and AnnotationList in favor of the equivalent AnnotationPage. See issue [#496](https://github.com/IIIF/api/issues/496).\n+\n+#### 1.4.4. Remove paging functionality\n+\n+As the Web Annotation Data Model defines the paging model, and Collection paging was neither implemented nor especially different from simply having a hierarchy of Collections, paging functionality was removed from the API. This simplifies the model at no cost. See issue [#1343](https://github.com/IIIF/api/issues/1343).\n+\n+#### 1.4.5. Move \"advanced\" Annotation features to cookbook\n+\n+The number of possible uses of the Web Annotation Data Model within the context of the Presentation API is extremely high.  The previous section 6 of version 2.0 and 2.1 was removed in favor of entries in a \"cookbook\" that could be expanded and adapted over time, rather than as a specification process. This separation makes new use cases easier to accommodate and describe solutions for, without producing new minor versions of the specification.\n+\n+### 1.5. Requirements Changes\n+\n+#### 1.5.1. Establish client requirements per property\n+\n+It was previously unclear which properties clients were required to process, and which could be left unimplemented without severely affecting the user experience of resources that made use of the properties. Requirements have been added per class/property combination. See issues [#1243](https://github.com/IIIF/api/issues/1243) and [#1271](https://github.com/IIIF/api/issues/1271)\n+\n+#### 1.5.2. Canvas should have `label`\n+\n+Not every view of an object has a defined label, or can have one automatically generated. As such, in order to conform with the previous requirement that Canvases _MUST_ have labels, implementers were adding empty or invisible labels as a workaround. In version 3.0, `label` on Canvas is only _RECOMMENDED_ rather than _REQUIRED_. See issue [#964](https://github.com/IIIF/api/issues/964)","path":"source/api/presentation/3.0/change-log.md","position":156,"original_position":156,"commit_id":"9d035377773448744d56cde5b381671a03ef3e26","original_commit_id":"9d035377773448744d56cde5b381671a03ef3e26","user":{"login":"azaroth42","id":871868,"avatar_url":"https://avatars3.githubusercontent.com/u/871868?v=4","gravatar_id":"","url":"https://api.github.com/users/azaroth42","html_url":"https://github.com/azaroth42","followers_url":"https://api.github.com/users/azaroth42/followers","following_url":"https://api.github.com/users/azaroth42/following{/other_user}","gists_url":"https://api.github.com/users/azaroth42/gists{/gist_id}","starred_url":"https://api.github.com/users/azaroth42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azaroth42/subscriptions","organizations_url":"https://api.github.com/users/azaroth42/orgs","repos_url":"https://api.github.com/users/azaroth42/repos","events_url":"https://api.github.com/users/azaroth42/events{/privacy}","received_events_url":"https://api.github.com/users/azaroth42/received_events","type":"User","site_admin":false},"body":"Good catch!!","created_at":"2018-05-06T17:26:04Z","updated_at":"2018-05-06T17:26:05Z","html_url":"https://github.com/IIIF/api/pull/1528#discussion_r186297288","pull_request_url":"https://api.github.com/repos/IIIF/api/pulls/1528","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/IIIF/api/pulls/comments/186297288"},"html":{"href":"https://github.com/IIIF/api/pull/1528#discussion_r186297288"},"pull_request":{"href":"https://api.github.com/repos/IIIF/api/pulls/1528"}},"in_reply_to_id":186285393},"pull_request":{"url":"https://api.github.com/repos/IIIF/api/pulls/1528","id":181719604,"html_url":"https://github.com/IIIF/api/pull/1528","diff_url":"https://github.com/IIIF/api/pull/1528.diff","patch_url":"https://github.com/IIIF/api/pull/1528.patch","issue_url":"https://api.github.com/repos/IIIF/api/issues/1528","number":1528,"state":"open","locked":false,"title":"Add Prezi3 Changelog","user":{"login":"azaroth42","id":871868,"avatar_url":"https://avatars3.githubusercontent.com/u/871868?v=4","gravatar_id":"","url":"https://api.github.com/users/azaroth42","html_url":"https://github.com/azaroth42","followers_url":"https://api.github.com/users/azaroth42/followers","following_url":"https://api.github.com/users/azaroth42/following{/other_user}","gists_url":"https://api.github.com/users/azaroth42/gists{/gist_id}","starred_url":"https://api.github.com/users/azaroth42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azaroth42/subscriptions","organizations_url":"https://api.github.com/users/azaroth42/orgs","repos_url":"https://api.github.com/users/azaroth42/repos","events_url":"https://api.github.com/users/azaroth42/events{/privacy}","received_events_url":"https://api.github.com/users/azaroth42/received_events","type":"User","site_admin":false},"body":"\r\nChangelog for Prezi3. ","created_at":"2018-04-15T20:39:02Z","updated_at":"2018-05-06T17:26:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ab52b12055842f28b6762fe41495b130c60f1a1c","assignee":null,"assignees":[],"requested_reviewers":[{"login":"jpstroop","id":999701,"avatar_url":"https://avatars3.githubusercontent.com/u/999701?v=4","gravatar_id":"","url":"https://api.github.com/users/jpstroop","html_url":"https://github.com/jpstroop","followers_url":"https://api.github.com/users/jpstroop/followers","following_url":"https://api.github.com/users/jpstroop/following{/other_user}","gists_url":"https://api.github.com/users/jpstroop/gists{/gist_id}","starred_url":"https://api.github.com/users/jpstroop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpstroop/subscriptions","organizations_url":"https://api.github.com/users/jpstroop/orgs","repos_url":"https://api.github.com/users/jpstroop/repos","events_url":"https://api.github.com/users/jpstroop/events{/privacy}","received_events_url":"https://api.github.com/users/jpstroop/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":742149557,"url":"https://api.github.com/repos/IIIF/api/labels/review","name":"review","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/IIIF/api/pulls/1528/commits","review_comments_url":"https://api.github.com/repos/IIIF/api/pulls/1528/comments","review_comment_url":"https://api.github.com/repos/IIIF/api/pulls/comments{/number}","comments_url":"https://api.github.com/repos/IIIF/api/issues/1528/comments","statuses_url":"https://api.github.com/repos/IIIF/api/statuses/9d035377773448744d56cde5b381671a03ef3e26","head":{"label":"IIIF:prezi3-changelog","ref":"prezi3-changelog","sha":"9d035377773448744d56cde5b381671a03ef3e26","user":{"login":"IIIF","id":5812589,"avatar_url":"https://avatars0.githubusercontent.com/u/5812589?v=4","gravatar_id":"","url":"https://api.github.com/users/IIIF","html_url":"https://github.com/IIIF","followers_url":"https://api.github.com/users/IIIF/followers","following_url":"https://api.github.com/users/IIIF/following{/other_user}","gists_url":"https://api.github.com/users/IIIF/gists{/gist_id}","starred_url":"https://api.github.com/users/IIIF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IIIF/subscriptions","organizations_url":"https://api.github.com/users/IIIF/orgs","repos_url":"https://api.github.com/users/IIIF/repos","events_url":"https://api.github.com/users/IIIF/events{/privacy}","received_events_url":"https://api.github.com/users/IIIF/received_events","type":"Organization","site_admin":false},"repo":{"id":17056712,"name":"api","full_name":"IIIF/api","owner":{"login":"IIIF","id":5812589,"avatar_url":"https://avatars0.githubusercontent.com/u/5812589?v=4","gravatar_id":"","url":"https://api.github.com/users/IIIF","html_url":"https://github.com/IIIF","followers_url":"https://api.github.com/users/IIIF/followers","following_url":"https://api.github.com/users/IIIF/following{/other_user}","gists_url":"https://api.github.com/users/IIIF/gists{/gist_id}","starred_url":"https://api.github.com/users/IIIF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IIIF/subscriptions","organizations_url":"https://api.github.com/users/IIIF/orgs","repos_url":"https://api.github.com/users/IIIF/repos","events_url":"https://api.github.com/users/IIIF/events{/privacy}","received_events_url":"https://api.github.com/users/IIIF/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/IIIF/api","description":"Source for API and model specifications documents (api and model)","fork":false,"url":"https://api.github.com/repos/IIIF/api","forks_url":"https://api.github.com/repos/IIIF/api/forks","keys_url":"https://api.github.com/repos/IIIF/api/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IIIF/api/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IIIF/api/teams","hooks_url":"https://api.github.com/repos/IIIF/api/hooks","issue_events_url":"https://api.github.com/repos/IIIF/api/issues/events{/number}","events_url":"https://api.github.com/repos/IIIF/api/events","assignees_url":"https://api.github.com/repos/IIIF/api/assignees{/user}","branches_url":"https://api.github.com/repos/IIIF/api/branches{/branch}","tags_url":"https://api.github.com/repos/IIIF/api/tags","blobs_url":"https://api.github.com/repos/IIIF/api/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IIIF/api/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IIIF/api/git/refs{/sha}","trees_url":"https://api.github.com/repos/IIIF/api/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IIIF/api/statuses/{sha}","languages_url":"https://api.github.com/repos/IIIF/api/languages","stargazers_url":"https://api.github.com/repos/IIIF/api/stargazers","contributors_url":"https://api.github.com/repos/IIIF/api/contributors","subscribers_url":"https://api.github.com/repos/IIIF/api/subscribers","subscription_url":"https://api.github.com/repos/IIIF/api/subscription","commits_url":"https://api.github.com/repos/IIIF/api/commits{/sha}","git_commits_url":"https://api.github.com/repos/IIIF/api/git/commits{/sha}","comments_url":"https://api.github.com/repos/IIIF/api/comments{/number}","issue_comment_url":"https://api.github.com/repos/IIIF/api/issues/comments{/number}","contents_url":"https://api.github.com/repos/IIIF/api/contents/{+path}","compare_url":"https://api.github.com/repos/IIIF/api/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IIIF/api/merges","archive_url":"https://api.github.com/repos/IIIF/api/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IIIF/api/downloads","issues_url":"https://api.github.com/repos/IIIF/api/issues{/number}","pulls_url":"https://api.github.com/repos/IIIF/api/pulls{/number}","milestones_url":"https://api.github.com/repos/IIIF/api/milestones{/number}","notifications_url":"https://api.github.com/repos/IIIF/api/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IIIF/api/labels{/name}","releases_url":"https://api.github.com/repos/IIIF/api/releases{/id}","deployments_url":"https://api.github.com/repos/IIIF/api/deployments","created_at":"2014-02-21T13:18:59Z","updated_at":"2018-05-01T13:55:17Z","pushed_at":"2018-05-05T13:44:28Z","git_url":"git://github.com/IIIF/api.git","ssh_url":"git@github.com:IIIF/api.git","clone_url":"https://github.com/IIIF/api.git","svn_url":"https://github.com/IIIF/api","homepage":"http://iiif.io/api","size":24540,"stargazers_count":52,"watchers_count":52,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":33,"mirror_url":null,"archived":false,"open_issues_count":60,"license":null,"forks":33,"open_issues":60,"watchers":52,"default_branch":"master"}},"base":{"label":"IIIF:prezi3","ref":"prezi3","sha":"00db7aa68361e3ec1e086a3ae55148ea3c20050e","user":{"login":"IIIF","id":5812589,"avatar_url":"https://avatars0.githubusercontent.com/u/5812589?v=4","gravatar_id":"","url":"https://api.github.com/users/IIIF","html_url":"https://github.com/IIIF","followers_url":"https://api.github.com/users/IIIF/followers","following_url":"https://api.github.com/users/IIIF/following{/other_user}","gists_url":"https://api.github.com/users/IIIF/gists{/gist_id}","starred_url":"https://api.github.com/users/IIIF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IIIF/subscriptions","organizations_url":"https://api.github.com/users/IIIF/orgs","repos_url":"https://api.github.com/users/IIIF/repos","events_url":"https://api.github.com/users/IIIF/events{/privacy}","received_events_url":"https://api.github.com/users/IIIF/received_events","type":"Organization","site_admin":false},"repo":{"id":17056712,"name":"api","full_name":"IIIF/api","owner":{"login":"IIIF","id":5812589,"avatar_url":"https://avatars0.githubusercontent.com/u/5812589?v=4","gravatar_id":"","url":"https://api.github.com/users/IIIF","html_url":"https://github.com/IIIF","followers_url":"https://api.github.com/users/IIIF/followers","following_url":"https://api.github.com/users/IIIF/following{/other_user}","gists_url":"https://api.github.com/users/IIIF/gists{/gist_id}","starred_url":"https://api.github.com/users/IIIF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IIIF/subscriptions","organizations_url":"https://api.github.com/users/IIIF/orgs","repos_url":"https://api.github.com/users/IIIF/repos","events_url":"https://api.github.com/users/IIIF/events{/privacy}","received_events_url":"https://api.github.com/users/IIIF/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/IIIF/api","description":"Source for API and model specifications documents (api and model)","fork":false,"url":"https://api.github.com/repos/IIIF/api","forks_url":"https://api.github.com/repos/IIIF/api/forks","keys_url":"https://api.github.com/repos/IIIF/api/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IIIF/api/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IIIF/api/teams","hooks_url":"https://api.github.com/repos/IIIF/api/hooks","issue_events_url":"https://api.github.com/repos/IIIF/api/issues/events{/number}","events_url":"https://api.github.com/repos/IIIF/api/events","assignees_url":"https://api.github.com/repos/IIIF/api/assignees{/user}","branches_url":"https://api.github.com/repos/IIIF/api/branches{/branch}","tags_url":"https://api.github.com/repos/IIIF/api/tags","blobs_url":"https://api.github.com/repos/IIIF/api/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IIIF/api/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IIIF/api/git/refs{/sha}","trees_url":"https://api.github.com/repos/IIIF/api/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IIIF/api/statuses/{sha}","languages_url":"https://api.github.com/repos/IIIF/api/languages","stargazers_url":"https://api.github.com/repos/IIIF/api/stargazers","contributors_url":"https://api.github.com/repos/IIIF/api/contributors","subscribers_url":"https://api.github.com/repos/IIIF/api/subscribers","subscription_url":"https://api.github.com/repos/IIIF/api/subscription","commits_url":"https://api.github.com/repos/IIIF/api/commits{/sha}","git_commits_url":"https://api.github.com/repos/IIIF/api/git/commits{/sha}","comments_url":"https://api.github.com/repos/IIIF/api/comments{/number}","issue_comment_url":"https://api.github.com/repos/IIIF/api/issues/comments{/number}","contents_url":"https://api.github.com/repos/IIIF/api/contents/{+path}","compare_url":"https://api.github.com/repos/IIIF/api/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IIIF/api/merges","archive_url":"https://api.github.com/repos/IIIF/api/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IIIF/api/downloads","issues_url":"https://api.github.com/repos/IIIF/api/issues{/number}","pulls_url":"https://api.github.com/repos/IIIF/api/pulls{/number}","milestones_url":"https://api.github.com/repos/IIIF/api/milestones{/number}","notifications_url":"https://api.github.com/repos/IIIF/api/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IIIF/api/labels{/name}","releases_url":"https://api.github.com/repos/IIIF/api/releases{/id}","deployments_url":"https://api.github.com/repos/IIIF/api/deployments","created_at":"2014-02-21T13:18:59Z","updated_at":"2018-05-01T13:55:17Z","pushed_at":"2018-05-05T13:44:28Z","git_url":"git://github.com/IIIF/api.git","ssh_url":"git@github.com:IIIF/api.git","clone_url":"https://github.com/IIIF/api.git","svn_url":"https://github.com/IIIF/api","homepage":"http://iiif.io/api","size":24540,"stargazers_count":52,"watchers_count":52,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":33,"mirror_url":null,"archived":false,"open_issues_count":60,"license":null,"forks":33,"open_issues":60,"watchers":52,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/IIIF/api/pulls/1528"},"html":{"href":"https://github.com/IIIF/api/pull/1528"},"issue":{"href":"https://api.github.com/repos/IIIF/api/issues/1528"},"comments":{"href":"https://api.github.com/repos/IIIF/api/issues/1528/comments"},"review_comments":{"href":"https://api.github.com/repos/IIIF/api/pulls/1528/comments"},"review_comment":{"href":"https://api.github.com/repos/IIIF/api/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/IIIF/api/pulls/1528/commits"},"statuses":{"href":"https://api.github.com/repos/IIIF/api/statuses/9d035377773448744d56cde5b381671a03ef3e26"}},"author_association":"OWNER"}}
{"actor":{"display_login":"azaroth42"}}