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));
        }