Go back to inheritance for now, because I can't figure out how to make Jackson not nest