if you're ignoring obstacles, you could just do something like this
Position source = myPosition();
Position dest = new Position(x, y, z);
List<Position> path = new ArrayList<>();
Position tmp = source;
while (!tmp.equals(dest)) {
int xOff = Integer.compare(dest.getX(), tmp.getX());
int yOff = Integer.compare(dest.getY(), tmp.getY());
tmp = tmp.translate(xOff, yOff);
path.add(tmp);
}
Written in hand, so watch for errors. Not sure why you want to use a region in the form of a list of positions