@startuml !include skinparams.puml package GameModule { class GameIO class GameState class GameTree class GameMove } GameIO -> GameState GameState -> GameTree GameTree -> GameMove package EngineModule { class EngineIO class EngineLogic interface DecisionAlgorithm class DecisionAlgorithm2 class DecisionAlgorithm1 } EngineIO --> EngineLogic EngineLogic -> DecisionAlgorithm DecisionAlgorithm <|.. DecisionAlgorithm1 DecisionAlgorithm <|.. DecisionAlgorithm2 EngineLogic --> GameTree @enduml