```mermaid classDiagram namespace EventPipelines{ %% === Basisklassen === class FirebirdEventArgs { <> } class Pipeline~T~ { - PipelineMaster : object + OnEvent : EventHandler~T~ + SendEvent(sender : object, args : T) } class EventBus { - pipelines : Dictionary~FirebirdEvent, Pipeline~T~> - pendingHooks : Dictionary ~FirebirdEvent, List~Action~object~~ + OnPipelineExist~T~(callback : Action, type : FirebirdEvent) + BuildPipeline~T~(type : FirebirdEvent, master : object) : Pipeline~T~ + GetPipeline~T~(type : FirebirdEvent) : Pipeline~T~ } %% === Spezialisierte Pipelines === class KeyboardPipeline { <> } class MousePipeline { <> } %% === EventArgs Spezialisierungen === class FirebirdKeyboardEventArgs { <> } class FirebirdMouseEventArgs { <> } %% === Enum === class FirebirdEvent { <> Tick ModulesLoading Startup KeyboardInputs MouseInputs } } %% === Beziehungen === Pipeline~T~ <|-- KeyboardPipeline Pipeline~T~ <|-- MousePipeline FirebirdEventArgs <|-- FirebirdKeyboardEventArgs FirebirdEventArgs <|-- FirebirdMouseEventArgs EventBus -->Pipeline~T~ EventBus -->Pipeline~T~ ```