Make some types better defined
To simply code I enhanced some typings and added asserting methods to remove some !== undefined cases from the code. In fact this is used as soon as we have process the incoming paths and splitted them into the known list. here all data are definedf and not optional like in the original datatypes.