# Extension Terminology

## Modules

[**Magento Module**](https://devdocs.magento.com/guides/v2.4/architecture/archi_perspectives/components/modules/mod_intro.html) – a logical group – that is, a directory containing blocks, controllers, helpers, models – that are related to a specific business feature

**GraphQL Module** – a Magento Module that provides a [GraphQL](/structure/building-blocks-summary/constructing-graphql-queries.md) interface, or improves an existing one. By convention, its name ends with the `GraphQl` suffix (examples: `GtmGraphQl`, `PayPalGraphQl`)

[**Scandi Extension**](/developing-with-scandi/extensions.md) – a separate, reusable JavaScript package implementing some frontend features in Scandi. The module’s name should be in `lower_snake_case`, and may optionally be prefixed with a vendor such as `@scandipwa/` (example: `@scandipwa/paypal_payments`). Often located under `scandipwa/packages` folder or in `node_modules`.&#x20;

## Plugins

**Namespace** – a string identifier associated with each item in the theme allowing it to be plugged into. These identifiers are formatted as paths, and may consist of (1) the name of the module, (2) the component name and file and (3) the name of the item. For example, a valid namespace might be `Component/Image/Component`. To assign a namespace to an item, prefix it with a comment: `/** @namespace Component/Image/Component **/`.

**Extension Plugin File** – a file plugging into a theme's functionality by wrapping around some of its functions, classes or their members. An extension can consist of multiple plugins, located in `src/plugin`. Plugin filenames must end with `.plugin.js` (example: `ConfigQuery.plugin.js`).\
\
**Plugin Function** – a function in an Extension Plugin that modifies the behavior of an item in the original theme by wrapping around it. The function, property or class that it plugs into is referred to as the **target function**, **target property** or **target class**, respectively.

**Target Namespace** – the namespace a plugin plugs into.

**Plugin Configuration Object** – the default export of a plugin file; an object specifying the namespaces the plugin targets, and configuring plugin functions for them.

**Plugin Target Type** – in the plugin configuration object, a string specifying the plugin type. For example, class methods can be plugged into with type `member-function` plugins. Class properties can be plugged into with type `member-property` plugins


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scandipwa.com/developing-with-scandi/extensions/extension-terminology.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
