Можно сделать подсистемы для модулей, типа:
- двигательные установки;
- оружие;
- корпус (броня, щиты и т.д.);
- электроника.
А в коде уже можно обращаться к этим подсистемам в виде ship.drive.getSpeed()
И интерфейс корабля будет меньше загроможден, и архитектура будет более гибкой.