The SAM specification indicates that each read group must have a unique ID field, but does not mark any other field as required.
I have also discovered that htsjdk throws exceptions if the sample (SM) field is empty, though there is no indication in the specification that this is required.
Are there other read group fields that I should expect to be required by common tools?