Namespace Scylla.Core.Modules
Classes
ScyllaModule
Abstract base class for all Scylla framework modules. Provides the standard implementation of the full module lifecycle, configuration subsystem, dependency injection, and Unity MonoBehaviour integration.
ScyllaModuleDependency
Declares a single dependency from one Scylla module onto another, specifying the target module by ID, the ScyllaModuleDependencyType that governs enforcement behavior, and an optional minimum version constraint.
ScyllaModuleException
Represents errors that occur during Scylla module operations, including registration, dependency validation, initialization, lifecycle transitions, and runtime failures. Optionally carries the ID of the module that triggered the error to make diagnostic messages more actionable.
ScyllaModuleInfo
Immutable metadata record for a single Scylla module. Every IScyllaModule exposes an instance of this class through its Info property. The framework reads this data during dependency validation and to determine initialization order; it is never mutated after construction.
ScyllaModuleManager
The concrete, sealed implementation of IScyllaModuleManager and the central orchestrator of SMUT (Scylla ModUlar Topology). Manages the complete lifecycle of all Scylla modules - from discovery and registration through dependency validation, ordered initialization, runtime start, and eventual shutdown - enforcing the framework's fail-fast philosophy at every stage.
ScyllaModulePlacement
Static utility class for validating and reporting the correct placement of Scylla module GameObjects within the Unity scene hierarchy.
Structs
ScyllaModuleID
Provides compile-time string constants for every built-in Scylla module ID. Use these constants instead of verbatim string literals when declaring ScyllaModuleDependency instances or when calling GetModule<T>(string) and related query methods, so that typos are caught at compile time rather than at runtime.
Interfaces
IScyllaModule
Core contract for all modules in the Scylla ModUlar Topology (SMUT).
Every concrete module must implement this interface, either directly or - more
commonly - by extending ScyllaModule, the framework-provided
MonoBehaviour base class that fulfils most of this contract automatically.
IScyllaModuleManager
Defines the full contract for the SMUT (Scylla ModUlar Topology) module manager, which orchestrates registration, dependency resolution, lifecycle management, and query operations for all IScyllaModule instances in the framework.
Enums
ScyllaModuleDependencyType
Classifies the nature of a dependency relationship between two Scylla modules, controlling how the framework responds when the dependency is absent or version-incompatible.
ScyllaModuleState
Enumerates every state a IScyllaModule can occupy in the SMUT (Scylla ModUlar Topology) lifecycle state machine.