Runtime contract for provider backends.
Both landed backend lanes satisfy this behaviour:
Lane selection is owned by ASM.ProviderRegistry and remains orthogonal to
execution_mode.
Summary
Callbacks
@callback close(pid()) :: :ok
@callback info(pid()) :: ASM.ProviderBackend.Info.t()
@callback start_run(map()) :: {:ok, pid(), ASM.ProviderBackend.Info.t()} | {:error, term()}