{
  "id": "glossary/ingestion/typing/api",
  "mentions": [
    {
      "context": "An API declares a consumer that never cites it, or a note cites an API that does…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "An API note that declares a contract gets one operation per operation of the con…",
      "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": 6,
      "surface": "API note",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "Contracts: an API note declares its contract, the build imports the operations, …",
      "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": 5,
      "surface": "API note",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "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": 5,
      "surface": "API",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…he build that reads the contract an API note declares and adds what it describes…",
      "file": {
        "href": "../../../inference/contracts/contract/index.html",
        "label": "inference/contracts/contract-import.md"
      },
      "href": "../../../inference/contracts/contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 4,
      "surface": "API note",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "The check family of the APIs and their contracts: W-CONTRACT-UNREACHABLE, a cont…",
      "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": 4,
      "surface": "APIs",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…hat never cites it, or a note cites an API that does not list it. One of the two…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ll or relative to the source of the API note; a note listed under the ## Consume…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API note",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…der the ## Consumers section of the API note is declared too; a note cites the A…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API note",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…note is declared too; a note cites the API when a serves link between the two wa…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…een the two was read in that note, the API's own consumers attribute and ## Cons…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ute asks for the reconciliation: an API note without it is left to the API witho…",
      "file": {
        "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html",
        "label": "rules/contracts/consumer-mismatch.rule.md"
      },
      "href": "../../../../specs/rules/contracts/consumer-mismatch/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "API note",
      "title": "Consumer mismatch",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ver the network and offers to call the API from the page. The contract of an 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.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L20",
      "kind": "recognised",
      "line": 20,
      "passages": 6,
      "surface": "API",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… API from the page. The contract of an API is shown by a purpose-built contract …",
      "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#L20",
      "kind": "recognised",
      "line": 20,
      "passages": 6,
      "surface": "API",
      "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": 6,
      "surface": "api note",
      "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": 6,
      "surface": "api",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…It weighs more than the page budget, and it wants to call the api from the page.",
      "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#L8",
      "kind": "recognised",
      "line": 8,
      "location": "00:31:32",
      "passages": 6,
      "surface": "api",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "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": 5,
      "surface": "API",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…perations an API really exposes  An API note declares its contract; the build im…",
      "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": 5,
      "surface": "API note",
      "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": 5,
      "surface": "API",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…perations an API really exposes  An API note declares its contract; the build im…",
      "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": 5,
      "surface": "API note",
      "title": "Roadmap outline",
      "type": "document",
      "typeLabel": "Document"
    },
    {
      "context": "…tract catches up. A note that names no API is not reported: it is a candidate fo…",
      "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": 5,
      "surface": "API",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ract of its source and may describe an API without a contract. A note taken in a…",
      "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": 5,
      "surface": "API",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…the other direction on the page of the API: the contract viewer lists every oper…",
      "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": 5,
      "surface": "API",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…flag give the documentation debt of an API: what the notes say that the contract…",
      "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": 5,
      "surface": "API",
      "title": "Operation unmatched",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…the contract, an exposes link from the API at the contract_import confidence of …",
      "file": {
        "href": "../../../inference/contracts/contract/index.html",
        "label": "inference/contracts/contract-import.md"
      },
      "href": "../../../inference/contracts/contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 4,
      "surface": "API",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "The machine-readable description of an API that a note declares in its contract …",
      "file": {
        "href": "../../../inference/contracts/contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../../../inference/contracts/contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 4,
      "surface": "API",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ort date in the model. The page of the API shows the contract without copying it…",
      "file": {
        "href": "../../../inference/contracts/contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../../../inference/contracts/contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 4,
      "surface": "API",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…matching several; W-API-NOCONSUMER, an API nothing consumes; W-API-CONSUMER-MISM…",
      "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": 4,
      "surface": "API",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…declared consumer that never cites the API, or a citing note the API does not li…",
      "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": 4,
      "surface": "API",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…lared consumer that never cites the API, or a citing note the API does not list.",
      "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": 4,
      "surface": "API",
      "title": "Contract checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…note matches several operations of its API. Nothing is attached: the finding nam…",
      "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": 4,
      "surface": "API",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… the other notes and operations of the API are matched as usual. The operation_i…",
      "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": 4,
      "surface": "API",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… note settles it; a note that names no API and matches several contracts of its …",
      "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": 4,
      "surface": "API",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… and matches several contracts of its source names its API in the api attribute.",
      "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": 4,
      "surface": "API",
      "title": "Ambiguous operation",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…tion imported from the contract of its API on three rungs, tried in order, the f…",
      "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": 4,
      "surface": "API",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… or its identifier. The note names its API in the api attribute or through a mar…",
      "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": 4,
      "surface": "API",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…at names none is a candidate for every API of its source that declares a contrac…",
      "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": 4,
      "surface": "API",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… own file, and the exposes link of the API points at it. The imported operation …",
      "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": 4,
      "surface": "API",
      "title": "Operation matching",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "The contract of an API is shown by a viewer the tool builds itself, rather than …",
      "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#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "API",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…itself, rather than by the interactive API console the specification first named…",
      "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#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "API",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…er the network, and offers to call the API from the page; the site is static, wo…",
      "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#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "API",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "The page of an API whose contract the build imported is the API page: the same s…",
      "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": 2,
      "surface": "API",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…iven and comes from the profile: on an API the operations come first, on a scree…",
      "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": 2,
      "surface": "API",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "The block of the API page of an API whose contract the build imported. It shows …",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "API",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…quest ever leaves the page towards the API described, and the only fetch of the …",
      "file": {
        "href": "../../../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../../../specs/viewers/contract-viewer/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "passages": 2,
      "surface": "API",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "One callable unit of an API: a method and a path in an OpenAPI contract, a port …",
      "file": {
        "href": "../../../inference/contracts/operation/index.html",
        "label": "inference/contracts/operation.md"
      },
      "href": "../../../inference/contracts/operation/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "API",
      "title": "Operation",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…our types come first (operations on an API, accessed objects on a screen, what i…",
      "file": {
        "href": "../../../inference/links/neighbourhood/index.html",
        "label": "inference/links/neighbourhood.md"
      },
      "href": "../../../inference/links/neighbourhood/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "API",
      "title": "Neighbourhood",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… screen, a rule, a business object, an API, a process, a decision, a term. A not…",
      "file": {
        "href": "../../documents/note/index.html",
        "label": "ingestion/documents/note.md"
      },
      "href": "../../documents/note/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "API",
      "title": "Note",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ng the screens, processes, objects or APIs it constrains. The rules of this wiki…",
      "file": {
        "href": "../rule/index.html",
        "label": "ingestion/typing/rule.md"
      },
      "href": "../rule/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "APIs",
      "title": "Rule",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… screen, a rule, a business object, an API, an operation, a process, a decision,…",
      "file": {
        "href": "../type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "../type/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "API",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ibutes to the tool through a versioned API: a reader for a file format, a conver…",
      "file": {
        "href": "../../../quality/plugins/plugin/index.html",
        "label": "quality/plugins/plugin.md"
      },
      "href": "../../../quality/plugins/plugin/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "API",
      "title": "Plugin",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…s the operations as operations of this API and attaches to each one the operatio…",
      "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,
      "surface": "API",
      "title": "Model query API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…in the profile: operations first on an API, accessed objects on a screen, what i…",
      "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": "API",
      "title": "Type-driven neighbour order",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…ct importers read the contract each API note declares and add its endpoints, the…",
      "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": "API note",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "An API has no consumer, declared or inferred: no attribute, no section, no menti…",
      "file": {
        "href": "../../../../specs/rules/contracts/api-without-consumer/index.html",
        "label": "rules/contracts/api-without-consumer.rule.md"
      },
      "href": "../../../../specs/rules/contracts/api-without-consumer/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "API",
      "title": "API without consumer",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "The contract an API note declares in its contract attribute, a URL or a path rel…",
      "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,
      "surface": "API note",
      "title": "Unreachable contract",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ns to the top of the related pages. An API without an imported contract keeps th…",
      "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,
      "surface": "API",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…the profile declares (a hexagon for an API or an endpoint, a rectangle for a scr…",
      "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": "API",
      "title": "Neighbourhood map",
      "type": "screen",
      "typeLabel": "Screen"
    }
  ]
}
