///|
pub fn plan_report_markdown(
  plan : RolloutPlan,
  users : Array[UserProfile],
  metrics : Array[MetricsSnapshot],
) -> String {
  simulate_rollout(plan, users, metrics).to_markdown()
}

///|
pub fn plan_report_json(
  plan : RolloutPlan,
  users : Array[UserProfile],
  metrics : Array[MetricsSnapshot],
) -> String {
  simulate_rollout(plan, users, metrics).to_json()
}

///|
pub fn example_report() -> SimulationReport {
  simulate_rollout(example_plan(), example_users(), healthy_metrics())
}

///|
pub fn canaryring_summary() -> String {
  let report = example_report()
  "CanaryRing " + report.verdict + " " + report.score.to_string() + "/100"
}