@startuml hide empty members title Concept for a board game framework class Board abstract Item class BoardItem class PlayerItem class Player class Game class GameRule abstract RuleException class PlayerWinException class PlayerLossException class GameOverException Board -- Game Board *-- BoardItem Item <|-- BoardItem Item <|-- PlayerItem Player --> PlayerItem Game *-- GameRule Game o-- Player RuleException <|-- PlayerWinException RuleException <|-- PlayerLossException RuleException <|-- GameOverException PlayerWinException --> Player PlayerLossException --> Player @enduml