Why do you set optional desired capabilities?

In my Hooks class, this is how I set my desired capabilities below, which as you know, are all mandatory. Why would I want to put in optional capabilities? Is it for logging? I would like to know to have a better understanding of Appium

DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(“deviceName”, “Android”);
dc.setCapability(MobileCapabilityType.APP, “[appPackage*]”);
dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, “[appActivity*]”);
DriverHelper.getAndroidDriver(“http://localhost:4723/wd/hub”, dc);

*Proprietary data