Task protocol explained