digraph SpecWrong {
  rankdir=LR;
  graph [fontname="Helvetica", fontsize=10, splines=true, nodesep=0.6, ranksep=0.9];
  node  [fontname="Helvetica", fontsize=9, style=filled, shape=box,
         height=0.28, margin="0.10,0.04"];
  edge  [arrowsize=0.6, fontname="Helvetica", fontsize=8];

  prepare  [label="prepare",       fillcolor="#cce5ff"];
  speculate [label="speculate",    shape=diamond, style=filled,
             fillcolor=aquamarine, color=black];
  fast     [label="fast_handler",  fillcolor="#fff3cd",
            comment="regular task — wrong"];
  slow     [label="slow_fallback", fillcolor="#fff3cd",
            comment="regular task — wrong"];
  merge    [label="merge",         fillcolor="#f8d7da", color=crimson,
            penwidth=2.5, xlabel="⚠ deadlock:\nstrong_deps=2,\nonly one satisfied"];

  prepare  -> speculate [color="#555555"];
  speculate -> fast  [style=dashed, label="0", color="#555555"];
  speculate -> slow  [style=dashed, label="1", color="#555555"];
  fast  -> merge [color="#555555", label="strong"];
  slow  -> merge [color="#555555", label="strong"];
}
