{
  "id": "keywords/module",
  "mentions": [
    {
      "context": "…page, an attribute value or a section rendered specially. The core types are modules and the default profile is assembled from them; a project keeps its own mod…",
      "file": {
        "href": "../../glossary/ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../glossary/ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 6,
      "surface": "modules",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…e engine ships is the format a team extends it with: a project keeps its own modules in a folder its profile names, a plugin contributes modules through a contr…",
      "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": 5,
      "surface": "modules",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "… one of its islands needs it. Every such bundle is a classic script, never a module: some browsers refuse a module script on a page opened from the disk, and th…",
      "file": {
        "href": "../../specs/decisions/publication/slots-islands-and-layers/index.html",
        "label": "decisions/publication/slots-islands-and-layers.md"
      },
      "href": "../../specs/decisions/publication/slots-islands-and-layers/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "module",
      "title": "Slots, islands and layers",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…rofile. A type may have a page of its own: a component a theme or the type's module provides for it is rendered instead of the generic template, which stays the…",
      "file": {
        "href": "../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../specs/screens/pages/entity-page/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 3,
      "surface": "module",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "A type module may ship a page of its own for 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": "module",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… of that type through the generic entity page or, when a theme or the type's module provides one, through its dedicated component, which the index names. The pa…",
      "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": 2,
      "surface": "module",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ules and the default profile is assembled from them; a project keeps its own modules in the folder its profile names under types_dir, and a plugin contributes m…",
      "file": {
        "href": "../../glossary/ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../glossary/ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 6,
      "surface": "modules",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…es in the folder its profile names under types_dir, and a plugin contributes modules through the types contribution point. The modules are merged before the key…",
      "file": {
        "href": "../../glossary/ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../glossary/ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 6,
      "surface": "modules",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…, and a plugin contributes modules through the types contribution point. The modules are merged before the keys of the project profile, plugins first; a module …",
      "file": {
        "href": "../../glossary/ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../glossary/ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 6,
      "surface": "modules",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… modules are merged before the keys of the project profile, plugins first; a module of a core type is refused, that type being extended through the profile, and…",
      "file": {
        "href": "../../glossary/ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../glossary/ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 6,
      "surface": "module",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…profile, plugins first; a module of a core type is refused, that type being extended through the profile, and two modules of one type are a configuration error.",
      "file": {
        "href": "../../glossary/ingestion/typing/type-module/index.html",
        "label": "ingestion/typing/type-module.md"
      },
      "href": "../../glossary/ingestion/typing/type-module/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 6,
      "surface": "modules",
      "title": "Type module",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ct keeps its own modules in a folder its profile names, a plugin contributes modules through a contribution point of the plugin API, and the build merges them b…",
      "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": 5,
      "surface": "modules",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…erges them before the keys of the project profile, plugins first, refusing a module of a core type, which is extended through the profile, and two modules of on…",
      "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": 5,
      "surface": "module",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…sing a module of a core type, which is extended through the profile, and two modules of one type. The site never learns a type slug: the entity page exposes the…",
      "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": 5,
      "surface": "modules",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…e or a mapped section is resolved by name, the project theme first, then the module, then the generic page, which remains correct when nothing specific is said.",
      "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": 5,
      "surface": "module",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…very such bundle is a classic script, never a module: some browsers refuse a module script on a page opened from the disk, and the site promises to work there; …",
      "file": {
        "href": "../../specs/decisions/publication/slots-islands-and-layers/index.html",
        "label": "decisions/publication/slots-islands-and-layers.md"
      },
      "href": "../../specs/decisions/publication/slots-islands-and-layers/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "module",
      "title": "Slots, islands and layers",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…work there; only the document viewer, imported on demand by its island, is a module. Styling is native CSS in four cascade layers, tokens, base, components and …",
      "file": {
        "href": "../../specs/decisions/publication/slots-islands-and-layers/index.html",
        "label": "decisions/publication/slots-islands-and-layers.md"
      },
      "href": "../../specs/decisions/publication/slots-islands-and-layers/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "module",
      "title": "Slots, islands and layers",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…ed: a component named EntityPage@<type> by a theme, or the EntityPage a type module ships, replaces the generic template for every entity of that type, and rece…",
      "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,
      "passages": 3,
      "surface": "module",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…t when there is one. The priority is fixed: the project theme, then the type module, then the default theme; the build summary lists every resolved component. T…",
      "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,
      "passages": 3,
      "surface": "module",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "One remark for the minutes. A type module may ship a page of its own for its 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": "52:50",
      "passages": 2,
      "surface": "module",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…e registry the build uses: --theme names a plugin package or the path of its module, repeated at will, the last one winning a slot; without it the plugins: of t…",
      "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": 2,
      "surface": "module",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "One module of the pipeline, a pure function of the outputs of the steps before it that reports its anomalies as findings and never stops the chain. The architec…",
      "file": {
        "href": "../../glossary/ingestion/pipeline/step/index.html",
        "label": "ingestion/pipeline/step.md"
      },
      "href": "../../glossary/ingestion/pipeline/step/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "module",
      "title": "Step",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…nned otherwise; a project profile adds one without a code change, and a type module carries one from a plugin or a folder of the project. The type of a note is …",
      "file": {
        "href": "../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "../../glossary/ingestion/typing/type/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "module",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…loads on demand), themes (a theme with components by slot) and types (a type module per folder, merged into the profile). The data around each contribution is v…",
      "file": {
        "href": "../../glossary/quality/plugins/contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "../../glossary/quality/plugins/contribution-point/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "module",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…hecks, projections, user interface components, themes and types, each type a module 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,
      "surface": "module",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "… itself is a classic script for the same reason, where the other islands are modules. What the engine would have given is kept: an index generated at build, fra…",
      "file": {
        "href": "../../specs/decisions/publication/purpose-built-contract-viewer/index.html",
        "label": "decisions/publication/purpose-built-search-index.md"
      },
      "href": "../../specs/decisions/publication/purpose-built-contract-viewer/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "surface": "modules",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…not be imported, as on a page opened from the disk in a browser that refuses module scripts there, the container shows a sentence saying so with a link to the P…",
      "file": {
        "href": "../../specs/viewers/document-viewer/index.html",
        "label": "viewers/document-viewer.md"
      },
      "href": "../../specs/viewers/document-viewer/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "surface": "module",
      "title": "Document viewer",
      "type": "screen",
      "typeLabel": "Screen"
    }
  ]
}
