We can have Python provide both 'flat' and 'vector' interfaces, using a single code-base. Let `world` denote the Minecraft world we are connected to. Python translates ``` python world[1, 2, 3] ``` into ``` python world.__getitem__((1, 2, 3)) ``` Now write ``` python vec = (1, 2, 3) ``` Python translates ``` python world[pos] ``` to exactly the same as before, namely ``` python world.__getitem__((1, 2, 3)) ``` What's more, Python translates ``` python world[pos1:pos2] ``` into ``` python world.__getitem__(slice(pos1, pos2)) ``` where the slice has `start` and `stop` attributes `pos1` and `pos2`. From this we can have `__getitem__` do what we think is the right thing. We can even write, if there is need for it ``` python world[pos1, pos2:pos3] ```