@startuml class "car" { carModel : carTemplate battery : int chargeLock : int drivesToWorkHour : int drivesFromWorkHour : int homeCarGrid : carGrid workCarGrid : carGrid driveToWorkPower : int hoursToWork : int stuck : boolean carName : String speed : int workDistance : int charge(int) : int tickDrive(int) } class "carGrid" { id : int dockedCars : ArrayList models : carTemplate[] capacityDockedCars() : int chargeCars(int) : int relativeChargeState() : double } class "carTemplate" { model : String chargeSpeed : int fullBattery : int range : int } class "powerGrid" { {static} logLevel : int {static} main(String[]) } "car" "*" <-> "carGrid" : homeCarGrid/workCarGrid/dockedCars "car" --> "carTemplate" : carModel @enduml