public static ImplPackageYaml fromYaml(YamlValue obj)
        {
            var languages = new Dictionary <string, ImplPkgLanguage> {
            };
            var langDict  = obj.dict("languages");

            if (langDict != null)
            {
                foreach (var langName in Object.keys(langDict))
                {
                    languages.set(langName, ImplPkgLanguage.fromYaml(langDict.get(langName)));
                }
            }

            return(new ImplPackageYaml(obj.dbl("file-version"), obj.str("vendor"), obj.str("name"), obj.str("description"), obj.str("version"), obj.strArr("includes"), obj.arr("implements").map(impl => ImplPkgImplementation.fromYaml(impl)), languages));
        }
 public static InterfaceYaml fromYaml(YamlValue obj)
 {
     return(new InterfaceYaml(obj.dbl("file-version"), obj.str("vendor"), obj.str("name"), obj.dbl("version"), obj.str("definition-file"), obj.arr("dependencies").map(dep => new InterfaceDependency(dep.str("name"), dep.dbl("minver")))));
 }
 public static ImplPkgImplIntf fromYaml(YamlValue obj)
 {
     return(new ImplPkgImplIntf(obj.str("name"), obj.dbl("minver"), obj.dbl("maxver")));
 }