Monte Carlo executor — runs a plan against a domain with per-action success probabilities and returns an execution trace.
@spec execute(String.t(), String.t(), String.t(), non_neg_integer()) :: {:ok, String.t()} | {:error, term()}