public Entity RequestDestroyer(Point spawnPositionInGrid, Direction direction, Transform parent)
        {
            Entity?destroyerEntity = data.Find(e => !e.Value.IsEnabled());

            if (!destroyerEntity.HasValue)
            {
                destroyerEntity = _destroyerFactory.Create(spawnPositionInGrid, direction, parent);
                data.Add(destroyerEntity.Value);
            }
            else
            {
                Reset(destroyerEntity, direction);
            }
            destroyerEntity.Value.Set(new TargetPosition {
                Position = GetTargetPosition(direction, spawnPositionInGrid), UseLocalPosition = true
            });
            PlaceDestroyer(destroyerEntity, spawnPositionInGrid, parent);
            return(destroyerEntity.Value);
        }