{
  "id": "specs/decisions/inference/types-as-modules",
  "mentions": [
    {
      "context": "A type of the profile is a folder that carries everything the type needs: its de…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "A type of the profile is a folder that carries everything the type needs: its de…",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/profile/index.html",
        "label": "ingestion/configuration/profile.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 5,
      "surface": "profile",
      "title": "Profile",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…hrough a contribution point of the plugin API, and the build merges them before …",
      "file": {
        "href": "../../../api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "#L8",
      "kind": "written",
      "line": 8,
      "passages": 4,
      "surface": "plugin API",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…the format a team extends it with: a project keeps its own modules in a folder i…",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/project/index.html",
        "label": "ingestion/configuration/project.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "project",
      "title": "Project",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…site never learns a type slug: the entity page exposes the declaration of the ty…",
      "file": {
        "href": "../../../screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "entity page",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ts labels per interface language, its note template and, when the generic page i…",
      "file": {
        "href": "../../../../glossary/ingestion/documents/note/index.html",
        "label": "ingestion/documents/note.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "note",
      "title": "Note",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… a folder that carries everything the type needs: its declaration, its labels pe…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…e components that render it. The core types are written that way and the default…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "types",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ns first, refusing a module of a core type, which is extended through the profil…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…h the profile, and two modules of one type. The site never learns a type slug: t…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… of one type. The site never learns a type slug: the entity page exposes the dec…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…y page exposes the declaration of the type and every attribute of the note, decl…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… not, and a dedicated component for a type, an attribute or a mapped section is …",
      "file": {
        "href": "../../../../glossary/ingestion/typing/type/index.html",
        "label": "ingestion/typing/type.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 8,
      "surface": "type",
      "title": "Type",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…pes are written that way and the default profile is assembled from them, so that…",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/profile/index.html",
        "label": "ingestion/configuration/profile.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 5,
      "surface": "default profile",
      "title": "Profile",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…eeps its own modules in a folder its profile names, a plugin contributes modules…",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/profile/index.html",
        "label": "ingestion/configuration/profile.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 5,
      "surface": "profile",
      "title": "Profile",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… them before the keys of the project profile, plugins first, refusing a module o…",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/profile/index.html",
        "label": "ingestion/configuration/profile.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 5,
      "surface": "profile",
      "title": "Profile",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… type, which is extended through the profile, and two modules of one type. The s…",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/profile/index.html",
        "label": "ingestion/configuration/profile.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 5,
      "surface": "profile",
      "title": "Profile",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…hrough a contribution point of the plugin API, and the build merges them before …",
      "file": {
        "href": "../../../api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 4,
      "surface": "plugin API",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "Plugin API",
      "file": {
        "href": "../../../api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "#L14",
      "kind": "written",
      "line": 14,
      "passages": 4,
      "surface": "Plugin API",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "Plugin API",
      "file": {
        "href": "../../../api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 4,
      "surface": "Plugin API",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…d merges them before the keys of the project profile, plugins first, refusing a …",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/project/index.html",
        "label": "ingestion/configuration/project.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "project",
      "title": "Project",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ped section is resolved by name, the project theme first, then the module, then …",
      "file": {
        "href": "../../../../glossary/ingestion/configuration/project/index.html",
        "label": "ingestion/configuration/project.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "project",
      "title": "Project",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "Entity page",
      "file": {
        "href": "../../../screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "#L12",
      "kind": "written",
      "line": 12,
      "passages": 3,
      "surface": "Entity page",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Entity page",
      "file": {
        "href": "../../../screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "#L12",
      "kind": "recognised",
      "line": 12,
      "passages": 3,
      "surface": "Entity page",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…f the type and every attribute of the note, declared and not, and a dedicated co…",
      "file": {
        "href": "../../../../glossary/ingestion/documents/note/index.html",
        "label": "ingestion/documents/note.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "note",
      "title": "Note",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…tion point of the plugin API, and the build merges them before the keys of the p…",
      "file": {
        "href": "../../../../glossary/ingestion/pipeline/build/index.html",
        "label": "ingestion/pipeline/build.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "build",
      "title": "Build",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "Build",
      "file": {
        "href": "../../../../glossary/ingestion/pipeline/build/index.html",
        "label": "ingestion/pipeline/build.md"
      },
      "href": "#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 2,
      "surface": "Build",
      "title": "Build",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…e declaration of the type and every attribute of the note, declared and not, and…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/attribute/index.html",
        "label": "ingestion/typing/attribute.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "attribute",
      "title": "Attribute",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… dedicated component for a type, an attribute or a mapped section is resolved by…",
      "file": {
        "href": "../../../../glossary/ingestion/typing/attribute/index.html",
        "label": "ingestion/typing/attribute.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "attribute",
      "title": "Attribute",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…les in a folder its profile names, a plugin contributes modules through a contri…",
      "file": {
        "href": "../../../../glossary/quality/plugins/plugin/index.html",
        "label": "quality/plugins/plugin.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "plugin",
      "title": "Plugin",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ore the keys of the project profile, plugins first, refusing a module of a core …",
      "file": {
        "href": "../../../../glossary/quality/plugins/plugin/index.html",
        "label": "quality/plugins/plugin.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "plugins",
      "title": "Plugin",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…tion point of the plugin API, and the build merges them before the keys of the p…",
      "file": {
        "href": "../../../objects/ingestion/build/index.html",
        "label": "objects/ingestion/build.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 2,
      "surface": "build",
      "title": "Build",
      "type": "business_object",
      "typeLabel": "Business object"
    },
    {
      "context": "Build",
      "file": {
        "href": "../../../objects/ingestion/build/index.html",
        "label": "objects/ingestion/build.md"
      },
      "href": "#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 2,
      "surface": "Build",
      "title": "Build",
      "type": "business_object",
      "typeLabel": "Business object"
    },
    {
      "context": "Gallery index",
      "file": {
        "href": "../../../screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "#L13",
      "kind": "written",
      "line": 13,
      "passages": 2,
      "surface": "Gallery index",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Gallery index",
      "file": {
        "href": "../../../screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 2,
      "surface": "Gallery index",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Declarative profile",
      "file": {
        "href": "../declarative-profile/index.html",
        "label": "decisions/inference/declarative-profile.md"
      },
      "href": "#L16",
      "kind": "written",
      "line": 16,
      "passages": 2,
      "surface": "Declarative profile",
      "title": "Declarative profile",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "Declarative profile",
      "file": {
        "href": "../declarative-profile/index.html",
        "label": "decisions/inference/declarative-profile.md"
      },
      "href": "#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 2,
      "surface": "Declarative profile",
      "title": "Declarative profile",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…for a type, an attribute or a mapped section is resolved by name, the project th…",
      "file": {
        "href": "../../../../glossary/ingestion/documents/section/index.html",
        "label": "ingestion/documents/section.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "section",
      "title": "Section",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ile, and two modules of one type. The site never learns a type slug: the entity …",
      "file": {
        "href": "../../../../glossary/publication/site/site/index.html",
        "label": "publication/site/site.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "site",
      "title": "Site",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…tion is resolved by name, the project theme first, then the module, then the gen…",
      "file": {
        "href": "../../../../glossary/publication/site/theme/index.html",
        "label": "publication/site/theme.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "theme",
      "title": "Theme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… contributes modules through a contribution point of the plugin API, and the bui…",
      "file": {
        "href": "../../../../glossary/quality/plugins/contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "contribution point",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "Build",
      "file": {
        "href": "../../../processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "#L15",
      "kind": "written",
      "line": 15,
      "surface": "Build",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    }
  ]
}
