Data is passed as a recursive closed struct.