  }

  for (auto&& requirement : command->GetRequirements()) {
    requirement->SetCurrentCommand(nullptr);
  }

  command->Removed();
}

void Scheduler::Impl::ProcessCommandAddition(Command* command) {