/**
* Copyright 2022-2025 Theai, Inc. dba Inworld AI
 */

#pragma once

#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"

/**
 * @class FInworldCommandModule
 * @brief Main module class for the Inworld Command plugin.
 *
 * This class manages the lifecycle of the Inworld Command plugin. It handles
 * module initialization and cleanup during engine startup and shutdown.
 */
class FInworldCommandModule : public IModuleInterface
{
public:
	/**
	 * @brief Called when the module is being loaded into memory.
	 *
	 * This function performs initialization tasks for the Inworld Command plugin,
	 * setting up subsystems and registering necessary components.
	 */
	virtual void StartupModule() override;

	/**
	 * @brief Called when the module is being unloaded from memory.
	 *
	 * This function performs cleanup tasks for the Inworld Command plugin,
	 * releasing resources and unregistering components before engine shutdown.
	 */
	virtual void ShutdownModule() override;
};
