def METHOD_NAME(ctx: AnalysisContext) -> list[Provider]:
    """Create the json specs used as input for VM target."""
    machine_json, machine_json_args = _machine_json(ctx)
    runtime_json, runtime_json_args = _runtime_json(ctx)
    run_cmd = cmd_args(
        cmd_args(ctx.attrs.vm_exec[RunInfo]),
        "isolate",
        cmd_args(ctx.attrs.image[LayerInfo].subvol_symlink, format = "--image={}"),
        cmd_args(machine_json_args, format = "--machine-spec={}"),
        cmd_args(runtime_json_args, format = "--runtime-spec={}"),
    )
    if ctx.attrs.timeout_secs:
        run_cmd = cmd_args(
            run_cmd,
            cmd_args(str(ctx.attrs.timeout_secs), format = "--timeout-secs={}"),
        )
    run_script, _ = ctx.actions.write(
        "run.sh",
        cmd_args("#!/bin/bash", cmd_args(run_cmd, delimiter = " \\\n  "), "\n"),
        is_executable = True,
        allow_args = True,
    )
    return [
        DefaultInfo(
            default_output = run_script,
            sub_targets = {
                "console": [DefaultInfo(run_script), RunInfo(cmd_args(run_cmd, "--console"))],
                "container": [DefaultInfo(run_script), RunInfo(cmd_args(run_cmd, "--container"))],
                "machine_json": [DefaultInfo(machine_json)],
                "runtime_json": [DefaultInfo(runtime_json)],
            },
        ),
        RunInfo(run_cmd),
        VMHostInfo(
            vm_exec = ctx.attrs.vm_exec,
            image = ctx.attrs.image,
            machine_spec = machine_json_args,
            runtime_spec = runtime_json_args,
        ),
    ]