Which is the best collision solid to use for a maze?

From my experience, I think all you can do is know the x, y and z placement of all of the lines and the add a ‘CollisionCapsule’ (or ‘CollisionTube’ depending on if you want backwards compatibility or not). If you want to know the x, y and z placement, see what is the coordinate of where the maze starts and then calculate accordingly.

You can also make a first person camera (if you are not using first person cameras in the game) temporarily. Here is a code snippet that helps you do so.
https://discourse.panda3d.org/t/mini-first-person-controller-game/27050

Now, in your code, you can add the following line of code somehwere:

base.accept('g', print, [base.camera.getPos()]) # g or any key that you want if you have already used g

Now run the program and walk around. Once you have reached the point to check the position, click on g (or whatever key you used). Then take a note of all positions and make CollisionTubes accordingly