{
  "id": "glossary/quality/plugins/plugin",
  "mentions": [
    {
      "context": "…ge the profile and load the declared plugins; stop on a configuration error, a m…",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "passages": 6,
      "surface": "plugins",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "The check family of the plugins: W-PLUGIN-DISABLED, a declared plugin whose syst…",
      "file": {
        "href": "../../checks/plugin-checks/index.html",
        "label": "quality/checks/plugin-checks.md"
      },
      "href": "../../checks/plugin-checks/index.html#L7",
      "kind": "written",
      "line": 7,
      "passages": 4,
      "surface": "plugins",
      "title": "Plugin checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…anguage comes as a pack shipped by a plugin, registered when the plugin loads, a…",
      "file": {
        "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html",
        "label": "processes/ingestion/adding-a-language-pack.md"
      },
      "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Adding a language pack",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "A declared plugin needs a system tool that is not installed on the machine that …",
      "file": {
        "href": "../../../../specs/rules/engine/disabled-plugin/index.html",
        "label": "rules/engine/disabled-plugin.rule.md"
      },
      "href": "../../../../specs/rules/engine/disabled-plugin/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Disabled plugin",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…e contract-openapi and contract-wsdl plugins read OpenAPI 3.x and WSDL documents…",
      "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": 3,
      "surface": "plugins",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ses the pack of its language until a plugin registers a more specific one; anoth…",
      "file": {
        "href": "../../../inference/recognition/language-pack/index.html",
        "label": "inference/recognition/language-pack.md"
      },
      "href": "../../../inference/recognition/language-pack/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Language pack",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…sing or invalid lock file, an invalid profile or a plugin that cannot be loaded.",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L11",
      "kind": "recognised",
      "line": 11,
      "passages": 6,
      "surface": "plugin",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "… file a reader or a converter of the plugins accepts, in parallel: the reader gi…",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 6,
      "surface": "plugins",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…e identifiers (a document keeps its extension), resolve application and domain; …",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 6,
      "surface": "extension",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "Run the source plugins on the typed entities: the contract importers read the co…",
      "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,
      "passages": 6,
      "surface": "plugins",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…esolve the theme: the components the plugins contribute and the project's theme.…",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L29",
      "kind": "recognised",
      "line": 29,
      "passages": 6,
      "surface": "plugins",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "The check family of the plugins: W-PLUGIN-DISABLED, a declared plugin whose syst…",
      "file": {
        "href": "../../checks/plugin-checks/index.html",
        "label": "quality/checks/plugin-checks.md"
      },
      "href": "../../checks/plugin-checks/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugins",
      "title": "Plugin checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ugins: W-PLUGIN-DISABLED, a declared plugin whose system tool is not installed, …",
      "file": {
        "href": "../../checks/plugin-checks/index.html",
        "label": "quality/checks/plugin-checks.md"
      },
      "href": "../../checks/plugin-checks/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Plugin checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…s contributions; info when the tool is optional and the plugin stays registered.",
      "file": {
        "href": "../../checks/plugin-checks/index.html",
        "label": "quality/checks/plugin-checks.md"
      },
      "href": "../../checks/plugin-checks/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Plugin checks",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ped by a plugin, registered when the plugin loads, and a locale with no pack is …",
      "file": {
        "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html",
        "label": "processes/ingestion/adding-a-language-pack.md"
      },
      "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Adding a language pack",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "Ship it in a plugin that registers the pack under its locale tag when it loads, …",
      "file": {
        "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html",
        "label": "processes/ingestion/adding-a-language-pack.md"
      },
      "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html#L12",
      "kind": "recognised",
      "line": 12,
      "passages": 4,
      "surface": "plugin",
      "title": "Adding a language pack",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…e tag when it loads, and declare the plugin under plugins: of the configuration;…",
      "file": {
        "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html",
        "label": "processes/ingestion/adding-a-language-pack.md"
      },
      "href": "../../../../specs/processes/ingestion/adding-a-language-pack/index.html#L12",
      "kind": "recognised",
      "line": 12,
      "passages": 4,
      "surface": "plugin",
      "title": "Adding a language pack",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…ifest, one answered nothing, and the plugin was not registered, so that none of …",
      "file": {
        "href": "../../../../specs/rules/engine/disabled-plugin/index.html",
        "label": "rules/engine/disabled-plugin.rule.md"
      },
      "href": "../../../../specs/rules/engine/disabled-plugin/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Disabled plugin",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…lds the same finding as info and the plugin stays registered. The fix is the too…",
      "file": {
        "href": "../../../../specs/rules/engine/disabled-plugin/index.html",
        "label": "rules/engine/disabled-plugin.rule.md"
      },
      "href": "../../../../specs/rules/engine/disabled-plugin/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Disabled plugin",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…ool on the PATH of the build, or the plugin removed from plugins:; a project who…",
      "file": {
        "href": "../../../../specs/rules/engine/disabled-plugin/index.html",
        "label": "rules/engine/disabled-plugin.rule.md"
      },
      "href": "../../../../specs/rules/engine/disabled-plugin/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 4,
      "surface": "plugin",
      "title": "Disabled plugin",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…WSDL. The build imports it through a plugin, produces one operation per operatio…",
      "file": {
        "href": "../../../inference/contracts/contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../../../inference/contracts/contract/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…WSDL. The build imports it through a plugin, produces one operation per operatio…",
      "file": {
        "href": "../../../inference/contracts/contract/index.html",
        "label": "inference/contracts/contract.md"
      },
      "href": "../../../inference/contracts/contract/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Contract",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ses the pack of its language until a plugin registers a more specific one; anoth…",
      "file": {
        "href": "../../../inference/recognition/language-pack/index.html",
        "label": "inference/recognition/language-pack.md"
      },
      "href": "../../../inference/recognition/language-pack/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Language pack",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…anguage comes as a pack shipped by a plugin. Each source selects its pack throug…",
      "file": {
        "href": "../../../inference/recognition/language-pack/index.html",
        "label": "inference/recognition/language-pack.md"
      },
      "href": "../../../inference/recognition/language-pack/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Language pack",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…profile names under types_dir, and a plugin contributes modules through the type…",
      "file": {
        "href": "../../../ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../../ingestion/typing/type-module/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…profile names under types_dir, and a plugin contributes modules through the type…",
      "file": {
        "href": "../../../ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../../ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ore the keys of the project profile, plugins first; a module of a core type is r…",
      "file": {
        "href": "../../../ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../../ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugins",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… reports a faulty key by its path. A plugin may ship a theme of its own, with co…",
      "file": {
        "href": "../../../publication/site/theme/index.html",
        "label": "publication/site/theme.md"
      },
      "href": "../../../publication/site/theme/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Theme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… reports a faulty key by its path. A plugin may ship a theme of its own, with co…",
      "file": {
        "href": "../../../publication/site/theme/index.html",
        "label": "publication/site/theme.md"
      },
      "href": "../../../publication/site/theme/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Theme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…site; the project's file wins over a plugin's. A theme that names the organisati…",
      "file": {
        "href": "../../../publication/site/theme/index.html",
        "label": "publication/site/theme.md"
      },
      "href": "../../../publication/site/theme/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Theme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "One of the ways a plugin adds to the tool, named by a key of its manifest: reade…",
      "file": {
        "href": "../contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "../contribution-point/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "One of the ways a plugin adds to the tool, named by a key of its manifest: reade…",
      "file": {
        "href": "../contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "../contribution-point/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ach contribution is validated by the plugin schema; the functions are called wit…",
      "file": {
        "href": "../contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "../contribution-point/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "plugin",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "broader",
      "file": {
        "href": "../preset/index.html",
        "label": "quality/plugins/preset.md"
      },
      "href": "../preset/index.html#L1",
      "kind": "written",
      "line": 1,
      "passages": 3,
      "title": "Preset",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ds on the core and on every official plugin and enables them all. It is what an …",
      "file": {
        "href": "../preset/index.html",
        "label": "quality/plugins/preset.md"
      },
      "href": "../preset/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "plugin",
      "title": "Preset",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ds on the core and on every official plugin and enables them all. It is what an …",
      "file": {
        "href": "../preset/index.html",
        "label": "quality/plugins/preset.md"
      },
      "href": "../preset/index.html#L7",
      "kind": "written",
      "line": 7,
      "passages": 3,
      "surface": "plugin",
      "title": "Preset",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… versioned interface through which a plugin contributes to the tool: readers for…",
      "file": {
        "href": "../../../../specs/api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "../../../../specs/api/plugin-api/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 3,
      "surface": "plugin",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…le folder merged into the profile. A plugin exports a manifest validated by the …",
      "file": {
        "href": "../../../../specs/api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "../../../../specs/api/plugin-api/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 3,
      "surface": "plugin",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…der into a deterministic registry. A plugin whose system dependency is missing d…",
      "file": {
        "href": "../../../../specs/api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "../../../../specs/api/plugin-api/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 3,
      "surface": "plugin",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…s its slot, the default theme or the plugin and theme that override it, and the …",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 3,
      "surface": "plugin",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…tered type, the core ones, those the plugins contribute and those of the project…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 3,
      "surface": "plugins",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…stry the build uses: --theme names a plugin package or the path of its module, r…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 3,
      "surface": "plugin",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…or its type; it goes through the same slot, so the model covers the plugins too.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "passages": 2,
      "surface": "plugins",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ts type, and it goes through the same slot, so the model covers the plugins too.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L12",
      "kind": "recognised",
      "line": 12,
      "location": "00:52:50",
      "passages": 2,
      "surface": "plugins",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…rsion, the project, the profile, the plugins, the applications, the domains, the…",
      "file": {
        "href": "../../../ingestion/configuration/configuration/index.html",
        "label": "ingestion/configuration/configuration.md"
      },
      "href": "../../../ingestion/configuration/configuration/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 2,
      "surface": "plugins",
      "title": "Configuration",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…rsion, the project, the profile, the plugins, the applications, the domains, the…",
      "file": {
        "href": "../../../ingestion/configuration/configuration/index.html",
        "label": "ingestion/configuration/configuration.md"
      },
      "href": "../../../ingestion/configuration/configuration/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "plugins",
      "title": "Configuration",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…les in a folder its profile names, a plugin contributes modules through a contri…",
      "file": {
        "href": "../../../../specs/decisions/inference/types-as-modules/index.html",
        "label": "decisions/inference/types-as-modules.md"
      },
      "href": "../../../../specs/decisions/inference/types-as-modules/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "plugin",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…ore the keys of the project profile, plugins first, refusing a module of a core …",
      "file": {
        "href": "../../../../specs/decisions/inference/types-as-modules/index.html",
        "label": "decisions/inference/types-as-modules.md"
      },
      "href": "../../../../specs/decisions/inference/types-as-modules/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "plugins",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…ses the pack of its language until a plugin registers a more specific one, other…",
      "file": {
        "href": "../../../../specs/decisions/ingestion/locale-per-source/index.html",
        "label": "decisions/ingestion/locale-per-source.md"
      },
      "href": "../../../../specs/decisions/ingestion/locale-per-source/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 2,
      "surface": "plugin",
      "title": "Locale per source",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…other languages are packs shipped by plugins, and a tag with no pack is a build …",
      "file": {
        "href": "../../../../specs/decisions/ingestion/locale-per-source/index.html",
        "label": "decisions/ingestion/locale-per-source.md"
      },
      "href": "../../../../specs/decisions/ingestion/locale-per-source/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 2,
      "surface": "plugins",
      "title": "Locale per source",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "… into a PDF at build, by a converter plugin, so that its text is extracted from …",
      "file": {
        "href": "../../../ingestion/documents/conversion/index.html",
        "label": "ingestion/documents/conversion.md"
      },
      "href": "../../../ingestion/documents/conversion/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "plugin",
      "title": "Conversion",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ngs and nothing stops the chain. By extension, the job of the forge that runs th…",
      "file": {
        "href": "../../../ingestion/pipeline/pipeline/index.html",
        "label": "ingestion/pipeline/pipeline.md"
      },
      "href": "../../../ingestion/pipeline/pipeline/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "extension",
      "title": "Pipeline",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…tive to the source root without the extension or the type suffix, slugified segm…",
      "file": {
        "href": "../../../ingestion/typing/identifier/index.html",
        "label": "ingestion/typing/identifier.md"
      },
      "href": "../../../ingestion/typing/identifier/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "extension",
      "title": "Identifier",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…e's rules in order (folder, suffix, extension, frontmatter key), then the note's…",
      "file": {
        "href": "../../../ingestion/typing/type-cascade/index.html",
        "label": "ingestion/typing/type-cascade.md"
      },
      "href": "../../../ingestion/typing/type-cascade/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "extension",
      "title": "Type cascade",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…and a type module carries one from a plugin or a folder of the project. The type…",
      "file": {
        "href": "../../../ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "../../../ingestion/typing/type/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "plugin",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…fault theme implements every slot; a plugin theme replaces any of them with a co…",
      "file": {
        "href": "../../../publication/site/slot/index.html",
        "label": "publication/site/slot.md"
      },
      "href": "../../../publication/site/slot/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "plugin",
      "title": "Slot",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… name and its relative path without extension or type suffix, slugified; a front…",
      "file": {
        "href": "../../../../specs/decisions/ingestion/deterministic-identifiers/index.html",
        "label": "decisions/ingestion/deterministic-identifiers.md"
      },
      "href": "../../../../specs/decisions/ingestion/deterministic-identifiers/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "extension",
      "title": "Deterministic identifiers",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…s, viewers and heavy projections are plugins declared in the configuration. The …",
      "file": {
        "href": "../../../../specs/decisions/quality/core-plugins-preset/index.html",
        "label": "decisions/quality/core-plugins-preset.md"
      },
      "href": "../../../../specs/decisions/quality/core-plugins-preset/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "plugins",
      "title": "Core, plugins, preset",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…ules on a folder, a file suffix, an extension or the presence of a frontmatter k…",
      "file": {
        "href": "../../../../specs/notes/type-by-filing/index.html",
        "label": "notes/type-by-filing.md"
      },
      "href": "../../../../specs/notes/type-by-filing/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "surface": "extension",
      "title": "Type by filing",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…errides a slot with a component of a plugin theme, and checks the result in the …",
      "file": {
        "href": "../../../../specs/roles/publication/theme-author/index.html",
        "label": "roles/publication/theme-author.md"
      },
      "href": "../../../../specs/roles/publication/theme-author/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "plugin",
      "title": "Theme author",
      "type": "role",
      "typeLabel": "Role"
    },
    {
      "context": "…fier, because identifiers strip the extension and the type suffix, or because tw…",
      "file": {
        "href": "../../../../specs/rules/identifiers/duplicate-identifier/index.html",
        "label": "rules/identifiers/duplicate-identifier.rule.md"
      },
      "href": "../../../../specs/rules/identifiers/duplicate-identifier/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "extension",
      "title": "Duplicate identifier",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…of the original file, read from its extension, \"Presentation\", the page count, t…",
      "file": {
        "href": "../../../../specs/screens/pages/document-page/index.html",
        "label": "screens/pages/document-page.md"
      },
      "href": "../../../../specs/screens/pages/document-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "surface": "extension",
      "title": "Document page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…omponent. The runbook of the example plugin, a procedure for operating the tool,…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L25",
      "kind": "recognised",
      "line": 25,
      "surface": "plugin",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… an OpenAPI and a WSDL contract: the plugins that import them produce one common…",
      "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,
      "surface": "plugins",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    }
  ]
}
