Make IntVec3 immutable and only accessible by drawing from a cached pool
Create Selection classes
Start Command architecture