/// <summary>
        /// Creates and returns an ExecutionResult based on the provided in-game state, with the provided resources refilled.
        /// </summary>
        /// <param name="model">A model that can be used to obtain data about the current game configuration.</param>
        /// <param name="inGameState">The in-game state to use for execution. This will NOT be altered by this method.</param>
        /// <param name="resourcesToRefill">The resources that should be refilled.</param>
        /// <returns></returns>
        private ExecutionResult ExecuteRefill(SuperMetroidModel model, InGameState inGameState, IEnumerable <ConsumableResourceEnum> resourcesToRefill)
        {
            InGameState resultingState = inGameState.Clone();

            foreach (ConsumableResourceEnum resource in resourcesToRefill)
            {
                resultingState.ApplyRefillResource(model, resource);
            }
            return(new ExecutionResult(resultingState));
        }