Context: Unreal Engine Gameplay Ability System used by a a game and engine c++ developer for a title at a studio.

What does it mean to have a prediction window in a gameplay ability execution and to explain it thoroughly.
A gameplay ability execution system with a prediction window allows the game to predict the outcome of an action before it is executed. This allows the game to adjust the action based on the current state of the game, and can be used for things such as aiming and targeting, timing-based events, or other complex interactions with the environment. 

For example, a game might use a prediction window to adjust the aim of an attack based on the distance between the player and the target. As the player moves the aiming reticle, the game would adjust the aim based on the distance between the reticle and the target. This allows the game to ensure that the attack lands precisely where the player intended. 

Another example would be a timing-based event, such as a platformer jump. The game would use the prediction window to determine when the player will press the jump button, and then trigger the jump animation and other related events at the appropriate time. This allows the game to create a more responsive and immersive experience for the player.
  In the context of gameplay ability execution in Unreal Engine, a prediction window refers to a temporary buffer or window of time during which the game engine predicts or forecasts the outcome of an ability's execution. This prediction window is used to improve the overall performance and responsiveness of the game by reducing the amount of time it takes for the ability to fully execute.

To explain this concept in detail, let's consider a simple example of a game with a magic spell ability. When the player casts the spell, the engine needs to determine the location and size of the spell's effect on the screen. This process can take several milliseconds, during which the player may see a flash or other visual cue indicating that the spell is being cast.

In a traditional game engine, the spell's effect would be applied to the screen immediately after the player casts the spell, regardless of the time it took to determine the location and size of the effect. However, this can result in a noticeable delay between the time the player casts the spell and the time the effect appears on the screen.

To address this issue, the Unreal Engine uses a prediction window to forecast the outcome of the spell's execution before it actually happens. Here's how it works:

1. The player casts the spell, and the engine starts to determine the location and size of the spell's effect.
2. While