toPath(descriptor) {
    // it might have a `compartment` and `module`
    if (hasValue(descriptor, 'compartment') && hasValue(descriptor, 'module')) {
      const location = this.renames[descriptor.compartment]
      if (!location) {
        throw new GenerationError(
          `Compartment ${hrLabel(this.canonicalName)}: Rename map missing location for referenced compartment ${hrPath(descriptor.compartment)}`
        )
      }
      return this.#readPowers.fileURLToPath(
        new URL(descriptor.module, location)
      )
    }
  }
Converts a `string` `file://` URL to a path, or an absolute path derived
from a given `ModuleDescriptor`

@remarks
In Endo, the `compartment` is stored as a _string_ `file://` URL; hence the
conversion.
@param {ModuleDescriptor} descriptor Module descriptor
@returns {string | undefined}
@todo There may be a safer way to do this conversion