load = async (
  entrypointPath,
  readPowers = defaultReadPowers,
  { log = defaultLog, ...options } = {}
) => {
  await Promise.resolve()

  const entrypoint = toEndoURL(entrypointPath)

  /** @type {LoadLocationOptions} */
  const opts = {
    ...DEFAULT_ENDO_OPTIONS,
    ...options,
    log: log.debug.bind(log),
  }

  const { import: importApp, sha512 } = await loadLocation(
    readPowers,
    entrypoint,
    opts
  )

  return {
    // TODO: update Endo's type here
    import: () => /** @type {Promise<{ namespace: T }>} */ (importApp(opts)),
    sha512,
  }
}
Low-level API for loading a compartment map for an application without
executing it.

Use cases:

- {@link ApplicationLoader.sha512 hash validation} of the compartment map
- Other as-of-yet-unknown things

@template [T=unknown] Exports of module, if known. Default is `unknown`
@param {string | URL} entrypointPath Entry point of application
@param {ReadNowPowers} [readPowers] Read powers
@param {ExecuteOptions} [options] Options
@returns {Promise<ApplicationLoader<T>>} Object with `import()` method
@public