{
  "id": "glossary/inference/contracts/operation",
  "mentions": [
    {
      "context": "…e that declares a contract gets one operation per operation of the contract; the…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ain an interface is worked at: its operations. The tree lists them under the int…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 16,
      "surface": "operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ts contract, the build imports the operations, each operation note absorbs the o…",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.md"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 11,
      "surface": "operations",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "An operation note attaches to the operation imported from the contract of its AP…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 10,
      "surface": "operation note",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "The block sits after the operations table of the page and before the path of the…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L12",
      "kind": "recognised",
      "line": 12,
      "passages": 10,
      "surface": "operations",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…s it through a plugin, produces one operation per operation it declares, caches …",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract-import.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 8,
      "surface": "operation",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…s a contract gets one operation per operation of the contract; the operation mat…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ng rule attaches each one to the operation note that names the same operation id…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 20,
      "surface": "operation note",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… operation note that names the same operation id, or the same method and path. T…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…hod and path. The note absorbs the imported operation, which never exists twice.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "An operation nobody wrote about keeps the properties of the contract only and is…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…hable finding; the note keeps its hand-written operations and the build goes on.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 20,
      "surface": "operations",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "Today an api note lists its operations by hand. When it declares a contract, the…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L2",
      "kind": "recognised",
      "line": 2,
      "location": "00:04:22",
      "passages": 20,
      "surface": "operations",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…tract, the build reads the contract and produces one operation per operation id.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L2",
      "kind": "recognised",
      "line": 2,
      "location": "00:04:22",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…tract, the build reads the contract and produces one operation per operation id.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L2",
      "kind": "recognised",
      "line": 2,
      "location": "00:04:22",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…when a note already exists for that operation? We have three operation notes und…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L3",
      "kind": "recognised",
      "line": 3,
      "location": "00:08:22",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…sts for that operation? We have three operation notes under the model query api.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L3",
      "kind": "recognised",
      "line": 3,
      "location": "00:08:22",
      "passages": 20,
      "surface": "operation notes",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…matching rule attaches the contract operation to the note that names the same op…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "00:11:47",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ion to the note that names the same operation id, or the same method and path. T…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "00:11:47",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…thod and path. The note absorbs it; the imported operation does not exist twice.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "00:11:47",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "So the operations table on the api page comes from the contract, and each row li…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L5",
      "kind": "recognised",
      "line": 5,
      "location": "00:16:57",
      "passages": 20,
      "surface": "operations",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… links to the note when one matches. What about an operation nobody wrote about?",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L5",
      "kind": "recognised",
      "line": 5,
      "location": "00:16:57",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "It stays an operation of the api with the properties of the contract only, and t…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "location": "00:21:17",
      "passages": 20,
      "surface": "operation",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…. What readers need is the list of operations, their method and path, the schema…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "location": "00:39:07",
      "passages": 20,
      "surface": "operations",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ing and the note keeps its hand-written operations. The build never stops on it.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "location": "00:48:52",
      "passages": 20,
      "surface": "operations",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…anel keeps five keys and lifts the operations to the top of the related pages. A…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 16,
      "surface": "operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…t interface ruled and bold and its operations listed under it, in the order of t…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L12",
      "kind": "recognised",
      "line": 12,
      "passages": 16,
      "surface": "operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Under the note, \"Operations\", led by \"Matched to the contract by operation name.…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "Operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… led by \"Matched to the contract by operation name.\" One row per operation the i…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…act by operation name.\" One row per operation the import attached to a note, in …",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…nospace family, the title of the operation note linked to its page, and how many…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation note",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…s page, and how many pages cite the operation, \"N callers\", the same count as th…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… count as the related pages of that operation. Then the gaps, in italics on the …",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…only when the table holds a gap: an operation the contract declares that no note…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ontract, without a page\"; and an operation note the contract does not declare, t…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation note",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… The rows are text in the served page; a contract without any operation says so.",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…lared ones, with the note that the operations come from the contract, not from t…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "passages": 16,
      "surface": "operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…es\" is the mentions panel with the operations first whatever their passage count…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "passages": 16,
      "surface": "operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… and the note \"On an interface the operations rise to the top: that is the grain…",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "passages": 16,
      "surface": "operations",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Open an operation → entity page",
      "file": {
        "href": "../../../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../../../specs/screens/pages/api-page/index.html#L26",
      "kind": "recognised",
      "line": 26,
      "passages": 16,
      "surface": "operation",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ild imports the operations, each operation note absorbs the operation it names, …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.md"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 11,
      "surface": "operation note",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…ns, each operation note absorbs the operation it names, and a purpose-built view…",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.md"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 11,
      "surface": "operation",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "3 · CONTRACTS  The operations an API really exposes  An API note declares its co…",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pdf"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "page 4",
      "passages": 11,
      "surface": "operations",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…ts contract; the build imports the operations.  Each operation note absorbs the …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pdf"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "page 4",
      "passages": 11,
      "surface": "operations",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…ld imports the operations.  Each operation note absorbs the operation it names. …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pdf"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "page 4",
      "passages": 11,
      "surface": "operation note",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…s.  Each operation note absorbs the operation it names.  A purpose-built viewer …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pdf"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "page 4",
      "passages": 11,
      "surface": "operation",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "3 · CONTRACTS  The operations an API really exposes  An API note declares its co…",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pptx"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "slide 4",
      "passages": 11,
      "surface": "operations",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…ts contract; the build imports the operations.  Each operation note absorbs the …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pptx"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "slide 4",
      "passages": 11,
      "surface": "operations",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…ld imports the operations.  Each operation note absorbs the operation it names. …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pptx"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "slide 4",
      "passages": 11,
      "surface": "operation note",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…s.  Each operation note absorbs the operation it names.  A purpose-built viewer …",
      "file": {
        "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html",
        "label": "framing/2026/2026-05-07-roadmap-outline/roadmap-outline.pptx"
      },
      "href": "../../../../briefs/framing/2026/2026-05-07-roadmap-outline/roadmap-outline/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "slide 4",
      "passages": 11,
      "surface": "operation",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "An operation note attaches to the operation imported from the contract of its AP…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…n_id of the frontmatter against the operation identifier of the contract; the me…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…r (or port and the title for a SOAP operation) against the operation's; the titl…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…e for a SOAP operation) against the operation's; the title of the note in compar…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…nd punctuation ignored, against the operation title or its identifier. The note …",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "A matched note absorbs the operation: it keeps its identifier, its markdown and …",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… the API points at it. The imported operation no longer exists as a separate ent…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…rate entity. Two notes claiming one operation, or one note matching several oper…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "passages": 10,
      "surface": "operation",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…tion, or one note matching several operations, attach nothing and are reported b…",
      "file": {
        "href": "../../../../specs/rules/engine/operation-matching/index.html",
        "label": "rules/engine/operation-matching.rule.md"
      },
      "href": "../../../../specs/rules/engine/operation-matching/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "passages": 10,
      "surface": "operations",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "The operations are not listed in the block: the table above it matches them to t…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 10,
      "surface": "operations",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ches them to the notes, one row per operation with its method, its path, its not…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 10,
      "surface": "operation",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ath, its note and its callers, the operations the contract declares without a no…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 10,
      "surface": "operations",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…cument page. Loaded, it lists every operation in the order of the contract behin…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 10,
      "surface": "operation",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…thod and path for an HTTP contract, operation, port and binding for a SOAP one) …",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 10,
      "surface": "operation",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…scription and body type; under the operations, a schema explorer offers one butt…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 10,
      "surface": "operations",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… one button per schema or type the operations reference and shows the selected o…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 10,
      "surface": "operations",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Open an operation → entity page, from the table of the API page",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L26",
      "kind": "recognised",
      "line": 26,
      "passages": 10,
      "surface": "operation",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Open an operation of the viewer → its parameters, request and responses, fetched…",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L28",
      "kind": "recognised",
      "line": 28,
      "passages": 10,
      "surface": "operation",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…what it describes to the model: one operation per operation of the contract, an …",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract-import.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 8,
      "surface": "operation",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…bes to the model: one operation per operation of the contract, an exposes link f…",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract-import.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 8,
      "surface": "operation",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ed yields W-CONTRACT-UNREACHABLE and the note keeps its hand-written operations.",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract-import.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 8,
      "surface": "operations",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…s it through a plugin, produces one operation per operation it declares, caches …",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 8,
      "surface": "operation",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…s it through a plugin, produces one operation per operation it declares, caches …",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 8,
      "surface": "operation",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… plugin, produces one operation per operation it declares, caches it by the fing…",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 8,
      "surface": "operation",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…hout copying it into the note: its operations as a plain list, a link to downloa…",
      "file": {
        "href": "../contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 8,
      "surface": "operations",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…hing where a match is found, two operation notes claim the same operation import…",
      "file": {
        "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html",
        "label": "rules/contracts/ambiguous-operation.rule.md"
      },
      "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 6,
      "surface": "operation notes",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… two operation notes claim the same operation imported from a contract, or one n…",
      "file": {
        "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html",
        "label": "rules/contracts/ambiguous-operation.rule.md"
      },
      "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 6,
      "surface": "operation",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…tract, or one note matches several operations of its API. Nothing is attached: t…",
      "file": {
        "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html",
        "label": "rules/contracts/ambiguous-operation.rule.md"
      },
      "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 6,
      "surface": "operations",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…names every candidate, the imported operation stays a separate entity with the p…",
      "file": {
        "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html",
        "label": "rules/contracts/ambiguous-operation.rule.md"
      },
      "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 6,
      "surface": "operation",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ract only, and the other notes and operations of the API are matched as usual. T…",
      "file": {
        "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html",
        "label": "rules/contracts/ambiguous-operation.rule.md"
      },
      "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 6,
      "surface": "operations",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…al. The operation_id of exactly one operation in each note settles it; a note th…",
      "file": {
        "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html",
        "label": "rules/contracts/ambiguous-operation.rule.md"
      },
      "href": "../../../../specs/rules/contracts/ambiguous-operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 6,
      "surface": "operation",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "An operation note that names an API with an imported contract, in its api attrib…",
      "file": {
        "href": "../../../../specs/rules/contracts/operation-unmatched/index.html",
        "label": "rules/contracts/operation-unmatched.rule.md"
      },
      "href": "../../../../specs/rules/contracts/operation-unmatched/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 6,
      "surface": "operation note",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…e operation matching attaches to an operation of that contract. One of two thing…",
      "file": {
        "href": "../../../../specs/rules/contracts/operation-unmatched/index.html",
        "label": "rules/contracts/operation-unmatched.rule.md"
      },
      "href": "../../../../specs/rules/contracts/operation-unmatched/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 6,
      "surface": "operation",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…act. One of two things is true: the operation disappeared from the contract and …",
      "file": {
        "href": "../../../../specs/rules/contracts/operation-unmatched/index.html",
        "label": "rules/contracts/operation-unmatched.rule.md"
      },
      "href": "../../../../specs/rules/contracts/operation-unmatched/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 6,
      "surface": "operation",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ad of the contract and describes an operation the next version will declare. The…",
      "file": {
        "href": "../../../../specs/rules/contracts/operation-unmatched/index.html",
        "label": "rules/contracts/operation-unmatched.rule.md"
      },
      "href": "../../../../specs/rules/contracts/operation-unmatched/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 6,
      "surface": "operation",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… retire the note or point it at the operation that replaced its own, or keep it …",
      "file": {
        "href": "../../../../specs/rules/contracts/operation-unmatched/index.html",
        "label": "rules/contracts/operation-unmatched.rule.md"
      },
      "href": "../../../../specs/rules/contracts/operation-unmatched/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 6,
      "surface": "operation",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…PI: the contract viewer lists every operation of the contract and flags the ones…",
      "file": {
        "href": "../../../../specs/rules/contracts/operation-unmatched/index.html",
        "label": "rules/contracts/operation-unmatched.rule.md"
      },
      "href": "../../../../specs/rules/contracts/operation-unmatched/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 6,
      "surface": "operation",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…t next to this note, declares four operations, listEntities (GET /entities), get…",
      "file": {
        "href": "../../../../specs/api/model-query/index.html",
        "label": "api/model-query.md"
      },
      "href": "../../../../specs/api/model-query/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 5,
      "surface": "operations",
      "title": "Model query API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…d SearchHit. The build imports the operations as operations of this API and atta…",
      "file": {
        "href": "../../../../specs/api/model-query/index.html",
        "label": "api/model-query.md"
      },
      "href": "../../../../specs/api/model-query/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 5,
      "surface": "operations",
      "title": "Model query API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…he build imports the operations as operations of this API and attaches to each o…",
      "file": {
        "href": "../../../../specs/api/model-query/index.html",
        "label": "api/model-query.md"
      },
      "href": "../../../../specs/api/model-query/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 5,
      "surface": "operations",
      "title": "Model query API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…API and attaches to each one the operation note that describes it, following the…",
      "file": {
        "href": "../../../../specs/api/model-query/index.html",
        "label": "api/model-query.md"
      },
      "href": "../../../../specs/api/model-query/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 5,
      "surface": "operation note",
      "title": "Model query API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…ing the operation matching rule; an operation left without a note, listFindings …",
      "file": {
        "href": "../../../../specs/api/model-query/index.html",
        "label": "api/model-query.md"
      },
      "href": "../../../../specs/api/model-query/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 5,
      "surface": "operation",
      "title": "Model query API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…ites from the cached contract: the operations with their parameters, request and…",
      "file": {
        "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html",
        "label": "decisions/publication/purpose-built-contract-viewer.md"
      },
      "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 4,
      "surface": "operations",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…nd WSDL alike. The page serves the operations as a plain list and a link to that…",
      "file": {
        "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html",
        "label": "decisions/publication/purpose-built-contract-viewer.md"
      },
      "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 4,
      "surface": "operations",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…when the reader asks and renders an operation list and a schema explorer, read-o…",
      "file": {
        "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html",
        "label": "decisions/publication/purpose-built-contract-viewer.md"
      },
      "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 4,
      "surface": "operation",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…d have given beyond that, trying an operation against a server, is out of scope …",
      "file": {
        "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html",
        "label": "decisions/publication/purpose-built-contract-viewer.md"
      },
      "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 4,
      "surface": "operation",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "… the API page: the same shell, its operations under it in the tree, the operatio…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L35",
      "kind": "recognised",
      "line": 35,
      "passages": 4,
      "surface": "operations",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…erations under it in the tree, the operations table matched to the contract and …",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L35",
      "kind": "recognised",
      "line": 35,
      "passages": 4,
      "surface": "operations",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…roperties cut to five keys and the operations first among the related pages. The…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L35",
      "kind": "recognised",
      "line": 35,
      "passages": 4,
      "surface": "operations",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…es from the profile: on an API the operations come first, on a screen the access…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L51",
      "kind": "recognised",
      "line": 51,
      "passages": 4,
      "surface": "operations",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ich the contract import turns into operations. The page of an API lists its oper…",
      "file": {
        "href": "../../../ingestion/typing/api/index.html",
        "label": "ingestion/typing/api.md"
      },
      "href": "../../../ingestion/typing/api/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "operations",
      "title": "API",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ions. The page of an API lists its operations and carries the contract viewer; a…",
      "file": {
        "href": "../../../ingestion/typing/api/index.html",
        "label": "ingestion/typing/api.md"
      },
      "href": "../../../ingestion/typing/api/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "operations",
      "title": "API",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ich the contract import turns into operations. The page of an API lists its oper…",
      "file": {
        "href": "../../../ingestion/typing/api/index.html",
        "label": "ingestion/typing/api.md"
      },
      "href": "../../../ingestion/typing/api/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "operations",
      "title": "API",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…arse; W-OPERATION-AMBIGUOUS, two operation notes claiming one imported operation…",
      "file": {
        "href": "../../../quality/checks/contract-checks/index.html",
        "label": "quality/checks/contract-checks.md"
      },
      "href": "../../../quality/checks/contract-checks/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "operation notes",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…eration notes claiming one imported operation, or one note matching several; W-A…",
      "file": {
        "href": "../../../quality/checks/contract-checks/index.html",
        "label": "quality/checks/contract-checks.md"
      },
      "href": "../../../quality/checks/contract-checks/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "operation",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…r parse; W-OPERATION-AMBIGUOUS, two operation notes claiming one imported operat…",
      "file": {
        "href": "../../../quality/checks/contract-checks/index.html",
        "label": "quality/checks/contract-checks.md"
      },
      "href": "../../../quality/checks/contract-checks/index.html#L7",
      "kind": "written",
      "line": 7,
      "passages": 3,
      "surface": "operation",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… nor a WSDL 1.1 or 2.0 document. No operation is imported from it, the note keep…",
      "file": {
        "href": "../../../../specs/rules/contracts/unreachable-contract/index.html",
        "label": "rules/contracts/unreachable-contract.rule.md"
      },
      "href": "../../../../specs/rules/contracts/unreachable-contract/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "operation",
      "title": "Unreachable contract",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ported from it, the note keeps the operations written by hand, and the build goe…",
      "file": {
        "href": "../../../../specs/rules/contracts/unreachable-contract/index.html",
        "label": "rules/contracts/unreachable-contract.rule.md"
      },
      "href": "../../../../specs/rules/contracts/unreachable-contract/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "operations",
      "title": "Unreachable contract",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…s on; the API page has no imported operations until a later build reads the cont…",
      "file": {
        "href": "../../../../specs/rules/contracts/unreachable-contract/index.html",
        "label": "rules/contracts/unreachable-contract.rule.md"
      },
      "href": "../../../../specs/rules/contracts/unreachable-contract/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "operations",
      "title": "Unreachable contract",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…m it, a transcript, the contract an operation was imported from. A note alone ha…",
      "file": {
        "href": "../../../../specs/objects/ingestion/representation/index.html",
        "label": "objects/ingestion/representation.md"
      },
      "href": "../../../../specs/objects/ingestion/representation/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "operation",
      "title": "Representation",
      "type": "business_object",
      "typeLabel": "Business object"
    },
    {
      "context": "…em one after the other. An imported operation matched by a note lists the contra…",
      "file": {
        "href": "../../../../specs/objects/ingestion/representation/index.html",
        "label": "objects/ingestion/representation.md"
      },
      "href": "../../../../specs/objects/ingestion/representation/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "operation",
      "title": "Representation",
      "type": "business_object",
      "typeLabel": "Business object"
    },
    {
      "context": "… which neighbour types come first (operations on an API, accessed objects on a s…",
      "file": {
        "href": "../../links/neighbourhood/index.html",
        "label": "inference/links/neighbourhood.md"
      },
      "href": "../../links/neighbourhood/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "operations",
      "title": "Neighbourhood",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…m it, a transcript, the contract an operation was imported from. A note alone ha…",
      "file": {
        "href": "../../../ingestion/sources/representation/index.html",
        "label": "ingestion/sources/representation.md"
      },
      "href": "../../../ingestion/sources/representation/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "operation",
      "title": "Representation",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…rule, a business object, an API, an operation, a process, a decision, a term, a …",
      "file": {
        "href": "../../../ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "../../../ingestion/typing/type/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "operation",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ly will page through them here. The operation is declared by the OpenAPI contrac…",
      "file": {
        "href": "../../../../specs/api/operations/list-entities/index.html",
        "label": "api/operations/list-entities.md"
      },
      "href": "../../../../specs/api/operations/list-entities/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "surface": "operation",
      "title": "List the entities",
      "type": "endpoint",
      "typeLabel": "Operation"
    },
    {
      "context": "…odel query API does not declare the operation yet: this note is ahead of its con…",
      "file": {
        "href": "../../../../specs/api/operations/suggest-links/index.html",
        "label": "api/operations/suggest-links.md"
      },
      "href": "../../../../specs/api/operations/suggest-links/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "operation",
      "title": "Suggest links",
      "type": "endpoint",
      "typeLabel": "Operation"
    },
    {
      "context": "… declared per type in the profile: operations first on an API, accessed objects …",
      "file": {
        "href": "../../../../specs/decisions/inference/type-driven-neighbour-order/index.html",
        "label": "decisions/inference/type-driven-neighbour-order.md"
      },
      "href": "../../../../specs/decisions/inference/type-driven-neighbour-order/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "operations",
      "title": "Type-driven neighbour order",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "… each API note declares and add its endpoints, their exposes links, the candidat…",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "surface": "endpoints",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…ts own meanwhile: its text and the operations it describes are indexed and cited…",
      "file": {
        "href": "../../../../specs/screens/pages/edge-cases/index.html",
        "label": "screens/pages/edge-cases.md"
      },
      "href": "../../../../specs/screens/pages/edge-cases/index.html#L21",
      "kind": "recognised",
      "line": 21,
      "surface": "operations",
      "title": "Edge cases",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…eclares (a hexagon for an API or an endpoint, a rectangle for a screen, a shield…",
      "file": {
        "href": "../../../../specs/screens/panels/neighbourhood-map/index.html",
        "label": "screens/panels/neighbourhood-map.md"
      },
      "href": "../../../../specs/screens/panels/neighbourhood-map/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "surface": "endpoint",
      "title": "Neighbourhood map",
      "type": "screen",
      "typeLabel": "Screen"
    }
  ]
}
