Since it's a two-dimensional structure, we can always do with just two dimensions, which in this case are not at 90° but 60° to each other. However, distance calculations (in terms of hexes traversed) are a bit more tricky in that setting.
Another idea would be to store positions as triplets (x,y,z) along the three axes a hexagon naturally has, and where needed normalize one of the coordinates to 0.
Lots of wargames use hexagonal structures, but trying to look at the implementation of something like Vassal and VASL for ideas might be a bit of overkill.