The same holds for group names. Key values are case sensitive as well. If a key is optional it may or may not be present in the file. However, if it isn't, the implementation of the standard should not blow up, it must provide some sane defaults. Additionally, keys either MUST or MAY be supported by a particular implementation.
Some keys only make sense in the context when another particular key is also present.
The following table is 100 columns wide. Usually simply the name of the main executable and friends. NO if the program is actually installed. If not, entry may not show in menus, etc. NoDisplay whether not to display in menus, etc.