It worries me to have parsing code added to the PackageBuilder, as this should be in the parser and as it is, it duplicates code from there. It will make maintenance more challenging in the future as you know. I would rather re-use the parser there or create a type safe "TypeDesc"-like class that the parser instantiates for types instead of using raw strings.