If we don't need an hRaven change then that makes things easier. CascadingJob and PigJob can both extend from a common type compose similarly, but we need a json distinction between the two. The client needs to know what type of job it has and this is the mechanism. Not all features will apply to different job types. Shipping this as a hack with Cascading in Pig's clothing is not a good idea imo.