For functions in this file, we are favoring having more verbose names such as "AddConditionalCompletion" vs simply "Add" in order to keep it easy to find the correct function in blueprints. The base class for all completions. Completions contain logic that determines if an agent's current episode should end, e.g. because the agent achieved the normal win/loss condition for the game. Additionally, completions can speed up training by ending episodes early if the agent has gotten into a state where training data is no longer useful, e.g. the agent is stuck somewhere. These two modes of completions are expressed with the following enum values:ELearningAgentsCompletion::Termination- used when the episode ends in an expected way and no further rewards should be expected, i.e. do not use the value function to estimate future rewards.ELearningAgentsCompletion::Truncation- used when the episode ends in an unexpected way, mainly to speed up the training process. The agent should expect additional rewards if training were to continue, so it should use its value function to estimate future rewards.