How to pass data between Arduinos

I want to connect two or three Arduinos together and pass data between them without using wireless (RF24L01) or Bluetooth. They will all be on the same desktop, so I will connect them directly. The idea is for one to be a master and the others slaves. The master will issue a command and the slaves will execute a move or take a measurement and report back to the master what the result was. I can structure it so that I always send between 1 and 10 bytes if that makes it easier to do. Here's an example. The master sends a command to a slave with a stepper motor. The slave moves the motor and reports back either the new angle or distance, or a simple 'OK' so that the master knows the command has been executed. So what is the best way to create simple wired bidirectional communication between Arduinos. I plan to use UNO's but may also include Pro Mini's or Nanos.

I would use I2C. You can have up to 128 slaves on the bus. It is 2 wire (and ground) bus. Each slave has a unique address.

You can use VirtualWire. Although intended for radios, it works very well with a wired connection. You can use any two pins plus ground for bidirectional communications. For one master to speak to two or more slaves, you would need to add an address byte to the message.

So what is the best way to create simple wired bidirectional communication between Arduinos.

You can use the serial ports on the arduinos. For bidirectional communication you may need to put diodes on the slave tx pins connecting to the master rx pin, with the banded side of the diode connected to the slave tx.