The returned DynamicModule object must always include the module property set to the class itself. This is how NestJS identifies the module. All other properties (imports, providers, exports, controllers) are optional and extend the static module metadata. Omitting module produces a cryptic startup error.
module is the only required property — it must be the class reference, not a string.
All other properties (imports, providers, exports, controllers, global) are optional.
Properties in the returned object are merged with the class-level @Module() metadata.
Setting global: true in the returned object makes this specific configuration instance global.