--- puppeteer: landscape: false format: "A4" timeout: 3000 export_on_save: puppeteer: true --- ```plantuml @startuml !include https://deep-tek.com/puml/core.puml class Satellite { -String satelliteId -String type -Angle position -double height +setPosition } class StandardSatellite { -int speed -int getFileSpeed } class ShrinkingSatellite { -int speed -int getFileSpeed } class RelaySatellite { -int speed -int getFileSpeed } Satellite <|- StandardSatellite Satellite <|- ShrinkingSatellite Satellite <|- RelaySatellite class Device { -String deviceId -String type -Angle position +setPosition } class BlackoutController { -List deviceList -List satelliteList -List fileSendingList -Map deviceMap -Map satelliteMap -Map map +void createDevice(String deviceId, String type, Angle position) +void removeDevice(String deviceId) +void createSatellite(String satelliteId, String type, double height, Angle position) +void removeSatellite(String satelliteId) +List listDeviceIds() +List listSatelliteIds() +void addFileToDevice(String deviceId, String filename, String content) +EntityInfoResponse getInfo(String id) +void simulate() +List communicableEntitiesInRange(String id) +void sendFile(String fileName, String fromId, String toId) } Device - Satellite : sendFile > Satellite - Device : sendFile > Device <|.. BlackoutController Satellite <|.. BlackoutController @enduml ```