I played around with this for a bit, and I think it's possible using case classes but wasn't sure if there was a way to iterate through all case class instances.  Alternatively we could rewrite this class in JAVA since it's essentially a conversion from the GATK Java classes to Java classes generated from AVRO.