prepareMakeCaplet = (powersName, workerName, resultName) => {
      assertPowersName(powersName);

      /** @type {DeferredTasks<MakeCapletDeferredTaskParams>} */
      const tasks = makeDeferredTasks();

      const workerId = prepareWorkerFormulation(workerName, tasks.push);

      const powersId = petStore.identifyLocal(powersName);
      if (powersId === undefined) {
        tasks.push(identifiers =>
          petStore.write(powersName, identifiers.powersId),
        );
      }

      if (resultName !== undefined) {
        tasks.push(identifiers =>
          E(directory).write(resultName, identifiers.capletId),
        );
      }

      return { tasks, workerId, powersId };
    }
Helper function for makeUnconfined and makeBundle.
@param {string} powersName
@param {string | undefined} workerName
@param {string | string[]} [resultName]