{"id":"linked-art/response-profile-contract","relativePath":"linked-art/response-profile-contract.md","title":"Linked Art Response Profile Contract","markdown":"# Linked Art Response Profile Contract\n\nStatus: provisional internal contract  \nPrepared: July 28, 2026  \nLinked Art issue: [#362](https://github.com/linked-art/linked.art/issues/362)\n\nMeta Museum uses two server-defined response shapes while the Linked Art 1.1\nprofile proposal remains unsettled:\n\n| Internal label | Purpose | Contract |\n|---|---|---|\n| `brief` | Discovery, lists, and change notifications | Canonical `id`, `type`, optional label/classification/identifier fields, `_complete: false`, and `_links.full.href` pointing to the canonical full record. |\n| `full` | Canonical record retrieval | Complete stored representation with no root `_complete: false` marker. |\n\nThe brief projection is deliberately bounded. Clients cannot request arbitrary\nfields, and both shapes retain the same canonical identity. Existing HAL links\nare preserved and the server adds a deterministic `full` link.\n\nThese labels describe current implementation behavior. They are not advertised\nas final Linked Art 1.1 vocabulary and are not exposed as a new route parameter\nbefore issue #362 is resolved.\n\nImplementation: `src/contracts/linked-art-response-profile.ts`  \nContract tests: `tests/contracts/linked-art-response-profile.test.ts`\n","sections":[],"html":"<h1 id=\"linked-art-response-profile-contract\">Linked Art Response Profile Contract</h1>\n<p>Status: provisional internal contract  </p>\n<p>Prepared: July 28, 2026  </p>\n<p>Linked Art issue: <a href=\"https://github.com/linked-art/linked.art/issues/362\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">#362</a></p>\n<p>Meta Museum uses two server-defined response shapes while the Linked Art 1.1</p>\n<p>profile proposal remains unsettled:</p>\n<p>| Internal label | Purpose | Contract |</p>\n<p>|---|---|---|</p>\n<p>| `brief` | Discovery, lists, and change notifications | Canonical `id`, `type`, optional label/classification/identifier fields, `_complete: false`, and `_links.full.href` pointing to the canonical full record. |</p>\n<p>| `full` | Canonical record retrieval | Complete stored representation with no root `_complete: false` marker. |</p>\n<p>The brief projection is deliberately bounded. Clients cannot request arbitrary</p>\n<p>fields, and both shapes retain the same canonical identity. Existing HAL links</p>\n<p>are preserved and the server adds a deterministic `full` link.</p>\n<p>These labels describe current implementation behavior. They are not advertised</p>\n<p>as final Linked Art 1.1 vocabulary and are not exposed as a new route parameter</p>\n<p>before issue #362 is resolved.</p>\n<p>Implementation: `src/contracts/linked-art-response-profile.ts`  </p>\n<p>Contract tests: `tests/contracts/linked-art-response-profile.test.ts`</p>","updatedAt":"2018-10-20T01:46:40.000Z","checksum":"a1c4c7a921be5813604ed642b59a538072afe1edcd44c8bc164bd50e75bc512e","checksumPrefix":"a1c4c7a921be","anchorCount":0,"lineCount":25,"rawUrl":"/api/docs/content?path=linked-art%2Fresponse-profile-contract.md","htmlUrl":"/docs?doc=linked-art%2Fresponse-profile-contract.md","apiUrl":"/api/docs/content?path=linked-art%2Fresponse-profile-contract.md"}