In the line
onready var nav_2d : Navigation2D = "root/" + root_nav + "/Navigation"
The thing being assigned (the
"root/" + root_nav + "/Navigation" part) is a string. The variable's type, however, is
Navigation2D. That's where the error is coming from.
If you are wondering, the path to a node is not the same thing as the path from a
Navigation2D node. A node's path is where it's located in the scene tree, while the path of a
Navigation2D is one that was laid by the user.