What does the square brackets mean?
It means the signal is a 3-bit-wide bus.

[2:0] is a notation borrowed from Verilog. It means that the signal is a bus containing multiple bits, numbered from 2 down to 0 -- three bits in total.