# Modules

Registre des modules `@zen/module-*` chargés dans le projet consommateur. Voir [docs/MODULES.md](../../../docs/MODULES.md) pour le guide complet de création d'un module.

## API

```js
import { registerModule, getRegisteredModules } from '@zen/core/modules';

// Le core utilise discoverModules() pour peupler ce registre automatiquement.
// La plupart des consommateurs n'appellent jamais registerModule() directement.
```

## Forme attendue d'un module

Le point d'entrée d'un package `@zen/module-X` doit exporter :

| Export | Type | Obligatoire |
|--------|------|-------------|
| `manifest` | `{ name, version, permissions?, envVars? }` | oui |
| `register` | `() => void \| Promise<void>` | oui |
| `createTables` | `async () => { created?, skipped? }` | si le module a des tables |
| `dropTables` | `async () => void` | si le module a des tables |
