 
     var objects: [PBXObject] = []
     var fileReferencesByPath: [Path: String] = [:]
-    var groupsByPath: [String: PBXGroup] = [:]
+    var groupsByPath: [Path: PBXGroup] = [:]
 
     var targetNativeReferences: [String: String] = [:]
     var targetBuildFileReferences: [String: String] = [:]

        //TODO: handle targets with shared sources

        let sourceGroups = try getGroups(path: source, groupReference: id())
        let sourceFiles = sourceGroups.filePaths.map(generateSourceFile)
        //TODO: don't generate build files for files that won't be built

        let configs: [XCBuildConfiguration] = try spec.configs.map { config in
            let buildSettings = try getTargetBuildSettings(config: config, target: target)

            if depth == 0 {
                topLevelGroups.append(group)
            }
            groupsByPath[path] = group
        }
        groups.insert(group, at: 0)
        return (allFilePaths, groups)
