     typealias BuildValue = DriverBuildValue
     typealias BuildRule = ExecuteJobRule
 
-    let job: Job
+    let index: Int
   }
 
   override class var ruleName: String { "\(ExecuteJobRule.self)" }

  }

  override func start(_ engine: LLTaskBuildEngine) {
    for (idx, input) in key.job.inputs.enumerated() {
      if let producingJob = context.producerMap[input.file] {
        let key = ExecuteJobRule.RuleKey(job: producingJob)
        engine.taskNeedsInput(key, inputID: idx)
      }
    }

      argsResolver: ArgsResolver,
      env: [String: String],
      fileSystem: FileSystem,
      producerMap: [VirtualPath: Int],
      jobs: [Job],
      executorDelegate: JobExecutorDelegate,
      jobQueue: OperationQueue,
      processSet: ProcessSet?,
