@startdot kb_progression_ALL
digraph kb_progression {
  // Playlist: https://www.youtube.com/watch?list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA
  label=<
<B>Kettlebell Basic Skill Progression - ALL</B><BR ALIGN="LEFT"/><BR ALIGN="LEFT"/>
Diagram by dznz based on Mark Wildman's teachings.<BR ALIGN="LEFT"/><BR ALIGN="LEFT"/>
Source: <B>https://github.com/dznz/wildman-skill-trees</B><BR ALIGN="LEFT"/><BR ALIGN="LEFT"/>
More by Mark Wildman - <B>https://www.wildmanathletica.com</B><BR ALIGN="LEFT"/><BR ALIGN="LEFT"/>
<I>
© 2023. This work is openly licensed with CC BY-NC-SA 4.0<BR ALIGN="RIGHT"/>
http://creativecommons.org/licenses/by-nc-sa/4.0/<BR ALIGN="RIGHT"/>
</I>
  >
  graph [labeljust=r]
  graph [fontname="Helvetica,Arial,sans-serif"]

  node [colorscheme="paired12"]
  node [shape=record]
  node [style="rounded,filled"]
  node [color=12, fillcolor=11]

  subgraph warmup {
    node [color=8, fillcolor=7]
    mov_03_atw; mov_04_halo, mov_05_atwf2b, mov_06_atwb2f
  }

  subgraph aux {
    node [color=10, fillcolor=9]
    mov_08_2hu1hd; mov_11_2hucleandown; mov_15_news;
  }

  subgraph post {
    node [color=2, fillcolor=1]

    ext_bw_squat       [label="{{BW|Squat}}"]
    ext_bw_altshinbox  [label="{{BW|Alt Shin Box}}"]
    ext_hc_dblswing    [label="{{HC|Double Swing}}"]
    ext_hc_dblrockit   [label="{{HC|Double Rockit}}"]
    ext_hc_s2sswing    [label="{{2HHC-01|Side to Side\nSwing}}"]

    // Implied
    mov_tgd [label="{{|Turkish Get Down}}"]
    mov_tgu [label="{{|Turkish Get Up}}"]
  }
  
  mov_01_deadlift           [label="{{1|Two Hand Deadlift}|HIP HINGE}"                     URL="https://www.youtube.com/watch?v=x0XkmM34BPI&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=1"];
  mov_02_swing              [label="{{2|Two Hand Swing}|LEG DRIVE &\nHIP SNAP}"            URL="https://www.youtube.com/watch?v=m-S9H2XVvYg&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=2"]
  mov_03_atw                [label="{{3|Around the World}|HAND TRANSITION}"                URL="https://www.youtube.com/watch?v=XaegZzSbtr0&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=3"]
  mov_04_halo               [label="{{4|Halo}|GLOBE UP\nORDER POSITION}"                   URL="https://www.youtube.com/watch?v=25xdtjbFPtw&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=4"]
  mov_05_atwf2b             [label="{{5|Around the World\nFront to Back}}"                 URL="https://www.youtube.com/watch?v=TwlQQXAQpaQ&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=5"]
  mov_06_atwb2f             [label="{{6|Around the World\nBack to Front}}"                 URL="https://www.youtube.com/watch?v=GrRO00YOIWM&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=6"]
  mov_07_althalo            [label="{{7|Alternating Halo}}"                                URL="https://www.youtube.com/watch?v=SMpquy5zSL4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=7"]
  mov_08_2hu1hd             [label="{{8|Two Hand Pickup\nOne Hand Putdown}|RACK POSITION}" URL="https://www.youtube.com/watch?v=eMkDP9VmMc0&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=8"]
  mov_09_saswing            [label="{{9|Single Arm Swing}|THUMB POINTS BACK}"              URL="https://www.youtube.com/watch?v=ejPpyLKZ1L4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=9"]
  mov_10_h2h                [label="{{10|Hand to Hand\nTransition}}"                       URL="https://www.youtube.com/watch?v=0Uk0Rdm3QFs&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=10"]

  mov_11_2hucleandown       [label="{{11|Two Hand Pickup\nClean Putdown}}"            URL="https://www.youtube.com/watch?v=cQC2y-ByaAw&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=11"]
  mov_12_clean              [label="{{12|Swing Clean}}"                               URL="https://www.youtube.com/watch?v=_nIsSXWs5iU&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=12"]
  mov_13_cleanh2h           [label="{{13|Clean with\nHand Transition}}"               URL="https://www.youtube.com/watch?v=6TVqHl2gtuM&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=13"]
  mov_14_press              [label="{{14|Single Arm\nOverhead Press}}"                URL="https://www.youtube.com/watch?v=XHkI03S6Pls&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=14"]
  mov_15_news               [label="{{15|Newspaper drill}}"                           URL="https://www.youtube.com/watch?v=htByOXjHLXE&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=15"]
  mov_16_startstopclean     [label="{{16|Start Stop Clean}|START & END CLEAN}"        URL="https://www.youtube.com/watch?v=XbK3jxI0WNQ&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=16"]
  mov_17_cap                [label="{{17|Clean & Press}}"                             URL="https://www.youtube.com/watch?v=SSxB3m5qRas&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=17"]
  mov_18_caph2h             [label="{{8|Clean & Press with\nHand Transition}}"        URL="https://www.youtube.com/watch?v=5Q4vMOYvAGg&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=18"]
  mov_19_startstopcap       [label="{{19|Start Stop\nClean & Press}|START & END C&P}" URL="https://www.youtube.com/watch?v=dSj3kqbuois&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=19"]
  mov_20_gobboxsquat        [label="{{20|Bottoms-Up Goblet\nBox Squat}|SQUAT BACK}"   URL="https://www.youtube.com/watch?v=k5Bc7pkEmrU&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=20"]

  mov_21_boxsquathalo       [label="{{21|Goblet Box Squat\nwith Halo}|STAND AT TOP}"          URL="https://www.youtube.com/watch?v=Aik5-BStbnc&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=21"]
  mov_22_gobsquathalo       [label="{{22|Goblet Squat\nwith Halo}|FULL DEPTH}"                URL="https://www.youtube.com/watch?v=cnZ8Mx8NQPE&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=22"]
  mov_23_racksquat          [label="{{23|Single-Bell Front Squat}}"                           URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=23"]
  mov_24_racklunge          [label="{{24|Rack Opposite Leg\nStep-Back Lunge}|VERTICAL SPINE}" URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=24"]
  mov_25_clean2sblunge      [label="{{25|Clean Step-Back Clean}}"                             URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=25"]
  mov_26_halfkneelclean     [label="{{26|Half-Kneeling Clean}}"                               URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=26"]
  mov_27_cleansblungeclean  [label="{{27|Clean Step-Back\nLunge Clean}}"                      URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=27"]
  mov_28_floorpress         [label="{{28|Single-Bell Floor Press}}"                           URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=28"]
  mov_29_halfkneelcap       [label="{{29|Half-Kneeling\nClean & Press}}"                      URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=29"]
  mov_30_floorpressroll     [label="{{30|Floor Press with Roll}}"                             URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=30"]

  mov_31_kneelwindmill      [label="{{31|Half-Kneeling Windmill}}"                     URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=31"]
  mov_32_quartgu            [label="{{32|Quarter Turkish Get-Up}}"                     URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=32"]
  mov_33_kneelcapwindmill   [label="{{33|Half-Kneeling\nClean & Press Windmill}}"      URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=34"]
  mov_34_halfgu             [label="{{34|Half Get-Up}}"                                URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=35"]
  mov_35_cap2ohsblunge      [label="{{35|Clean & Press to Overhead\nStep-Back Lunge}}" URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=37"]
  mov_36_kneelhipdrop       [label="{{36|Half-Kneeling Hip Drop}}"                     URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=38"]
  mov_37_halfgu2hip         [label="{{37|Half Get-Up\nto Hip Pass}}"                   URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=39"]
  mov_38_kneelcap2hip       [label="{{38|Half-Kneeling Clean & Press\nto Hip Drop}}"   URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=40"]
  mov_39_boxsquat2boat      [label="{{39|Box Squat to Boat Pose}}"                     URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=41"]
  mov_40_bwspinalrock       [label="{{40|Spinal Rock\n(Bodyweight)}}"                  URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=42"]

  mov_41_flatbackpullover   [label="{{41|Flat Back Pullover}}"                              URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=43"]
  mov_42_halfgu2kneel       [label="{{42|Half Get-Up to Hip Pass\n(to Half-Kneeling)}}"     URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=45"]
  mov_43_spinalrock         [label="{{43|Spinal Rock}}"                                     URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=48"]
  mov_44_pushpress          [label="{{44|Push Press}}"                                      URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=49"]
  mov_45_gobsquatcurl       [label="{{45|Rock-Bottom\nCurl with Goblet Squat}}"             URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=50"]
  // Missing 46
  mov_47_racksquatpickup    [label="{{47|Rock-Bottom\nFront Squat Pickup}|PAUSE AT BOTTOM}" URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=52"]
  mov_48_thruster           [label="{{48|Thruster}}"                                        URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=48"]
  mov_49_seatedpress        [label="{{49|Seated Two-Handed\nOverhead Press}}"               URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=54"]
  mov_50_2hdeadclean2rack   [label="{{50|Two-Handed Dead Clean\nto Double Front Rack}}"     URL="https://www.youtube.com/watch?v=acqKxfMGAbk&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=55"]

  mov_51_fourcountsquat     [label="{{51|Four-Count Squat\n(Bodyweight)}}" URL="https://www.youtube.com/watch?v=1rkGfL1EdWI"]
  mov_52_rackaltshinbox     [label="{{52|Rack Alt Shinbox}}"               URL="https://www.youtube.com/watch?v=AoEYX36Q2Zg"]
  mov_53_hornygobsquat      [label="{{53|Handle Up\nGoblet Squat}}"        URL="https://www.youtube.com/watch?v=i2AtDi4yZSA"]
  mov_54_shinboxpress       [label="{{54|Contra Shinbox Press}}"           URL="https://www.youtube.com/watch?v=FEbi2lKVEHU"]
  mov_55_backpullsituppress [label="{{55|Flat Back Pullover Situp Press}}" URL="https://www.youtube.com/watch?v=KTDVl0Lkdc4&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=57"]
  mov_56_suitcasedl         [label="{{56|Suitcase Deadlift}}"              URL="https://www.youtube.com/watch?v=d6i6MwVOmk0&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=58"];
  mov_57_dblsuitcase        [label="{{57|Double Suitcase}}"                URL="https://www.youtube.com/watch?v=4PSOSrDcGfc&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=59"];
  mov_58_dblsumodl          [label="{{58|Double Sumo Deadlift}}"           URL="https://www.youtube.com/watch?v=gdutIla6nMw"];
  mov_59_halfsnatchdown     [label="{{59|Half Snatch Down}}"               URL="https://www.youtube.com/watch?v=u2NbMtX_Rb0&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=60"];
  mov_60_dblswing           [label="{{60|Double Swing}}"                   URL="https://www.youtube.com/watch?v=P5IFTJySA_s&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=61"];

  mov_61_halfsnatchup       [label="{{61|Half Snatch Up}}"               URL="https://www.youtube.com/watch?v=3HEmUyLYjjc"];
  mov_62_dblclean           [label="{{62|Double Clean}}"                 URL="https://www.youtube.com/watch?v=Qe9ejhAtdGY&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=62"];
  // Double Rockit is labeled #64 but #63 was missed, so putting here.   
  mov_63_dblrockit          [label="{{64?|Double Rockit}}"               URL="https://www.youtube.com/watch?v=zXB6hFrrBkA&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=63"];
  mov_64_dbloutswing        [label="{{64|Double\nOutside Swing}}"        URL="https://www.youtube.com/watch?v=yr_fRgGevsE"];
  mov_65_dblcap             [label="{{65|Double\nClean & Press}}"        URL="https://www.youtube.com/watch?v=RizGV8ef--s"];
  mov_66_snatch             [label="{{66|Full Snatch}}"                  URL="https://www.youtube.com/watch?v=f-zkPiAlpQw&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=65"];
  mov_67_dblsquat           [label="{{67|Double\nFront Squat}}"          URL="https://www.youtube.com/watch?v=dX5yXJa5Dm0&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=66"];
  mov_68_dblclean2squat     [label="{{68|Double Clean\nto Front Squat}}" URL="https://www.youtube.com/watch?v=R3s6Wb_ApHM"];
  mov_69_snatchpress        [label="{{69|Snatch Press}}"                 URL="https://www.youtube.com/watch?v=IzFPa_Q1yHM&list=PLk4oYPJ7TXKhX8YqA2AVrfgs_pEF6p7KA&index=67"];
  mov_70_kneelsnatchup      [label="{{70|Half-Kneeling Snatch Up}}"      URL="https://www.youtube.com/watch?v=1_UrK5SopL4"];

  mov_71_deaddblclean       [label="{{71|Dead Stop\nDouble Clean}}"                             URL="https://www.youtube.com/watch?v=22bKQqMqAQY"];
  mov_72_deck               [label="{{72|Deck Squat}}"                                          URL="https://www.youtube.com/watch?v=vUJ3sZVwZ4Y"];
  mov_73_2hsbldl            [label="{{73|Two Hand Single\nBent Leg Deadlift}}"                  URL="https://www.youtube.com/watch?v=-RD1qqe7P8M"];
  mov_74_dblhangclean2squat [label="{{74|Double Hang Clean\nTo Squat}}"                         URL="https://www.youtube.com/watch?v=SdPEkv56Lt8"];
  mov_75_2hssldl            [label="{{75|Two Hand Single\nStraight Leg Deadlift}}"              URL="https://www.youtube.com/watch?v=tMt2hzfFGzo"];
  mov_76_dblhangcap         [label="{{76|Double Dead Hang\nClean & Press}|SLOW DOWN TO ENDURE}" URL="https://www.youtube.com/watch?v=ieDA4V9WGNQ"];
  mov_77_shsldl             [label="{{77|Single Hand\nSingle Leg Deadlift}|ONE-SIDE BALANCE}"   URL="https://www.youtube.com/watch?v=1K4hgXfUinU"];
  mov_78_dblcleansqpress    [label="{{78|Double Clean Squat Press}}"                            URL="https://www.youtube.com/watch?v=fWPDPBliCEk"];
  mov_79_kneelsnatchdown    [label="{{79|Half-Kneeling Snatch Down}|KB CLOSE TO BODY}"          URL="https://www.youtube.com/watch?v=okO-7womT5Q"];
  mov_80_dblhangcsp         [label="{{80|Double Dead\nHang Clean\nSquat Press}}"                URL="https://www.youtube.com/watch?v=DpGOSw7kGO0"];

  mov_81_kneelsnatch        [label="{{81|Half Kneeling\nFull Snatch}}"           URL="https://www.youtube.com/watch?v=axx4kfUzkl4"];
  mov_82_dblcleanpresssq    [label="{{82|Double Clean\nPress Squat}}"            URL="https://www.youtube.com/watch?v=t5fDkX3vjiU"];
  mov_83_dblcleansblunge    [label="{{83|Double Clean\nRack Step Back Lunge}}"   URL="https://www.youtube.com/watch?v=mNt7guHRP4U"];
  mov_84_s2sswing           [label="{{84|Side to Side Swing}|LATERAL ROTATION}"  URL="https://www.youtube.com/watch?v=W_04Zv3p2HM"];

  mov_01_deadlift -> mov_02_swing;
  mov_01_deadlift -> mov_03_atw;
  mov_01_deadlift -> mov_04_halo;
  mov_01_deadlift -> mov_08_2hu1hd;
  mov_02_swing -> mov_09_saswing;
  mov_09_saswing -> mov_10_h2h;
  mov_08_2hu1hd -> mov_11_2hucleandown;
  mov_09_saswing -> mov_11_2hucleandown;
  mov_12_clean -> mov_13_cleanh2h;
  mov_08_2hu1hd -> mov_14_press;
  mov_04_halo -> mov_20_gobboxsquat;
  mov_10_h2h -> mov_13_cleanh2h;

  mov_08_2hu1hd -> mov_23_racksquat;
  mov_23_racksquat -> mov_24_racklunge;
  mov_16_startstopclean -> mov_25_clean2sblunge;

  mov_19_startstopcap -> mov_29_halfkneelcap;


  subgraph cluster_warmup {
    label="Warmups"
    mov_04_halo -> mov_07_althalo;
    mov_03_atw -> mov_05_atwf2b;
    mov_05_atwf2b -> mov_06_atwb2f;

  }

  // LAYOUT HACKS

  {
    node [style=invis]
    edge [style=invis]
    
    mov_06_atwb2f -> lay_endwarmup;
    mov_19_startstopcap -> lay_endcap
    lay_startsnatch -> mov_59_halfsnatchdown;
    lay_starttgu -> mov_24_racklunge;
    mov_72_deck -> lay_endsquat
  }

  // Have warmup precede squat
  { rank=same; lay_endwarmup; ext_bw_altshinbox}

  // have C&P precede snatch & tgu
  { rank=same; lay_endcap; lay_startsnatch; }

  { rank=same; lay_endsquat; lay_starttgu}

  { rank=same; mov_08_2hu1hd; ext_bw_altshinbox; }
  { rank=same; mov_56_suitcasedl; mov_10_h2h}

  // END LAYOUT HACKS

  subgraph cluster_cap {
    label="Clean & Press"
    mov_11_2hucleandown -> mov_12_clean;
    mov_12_clean -> mov_16_startstopclean;
    mov_12_clean -> mov_17_cap;
    mov_12_clean -> mov_15_news;
    mov_14_press -> mov_17_cap;
    mov_17_cap -> mov_18_caph2h;
    mov_13_cleanh2h -> mov_18_caph2h;
    mov_17_cap -> mov_19_startstopcap;
  }

 subgraph cluster_tgd {
    label="Turkish Get Down/\nTurkish Get Up"
    mov_24_racklunge -> mov_25_clean2sblunge;
    mov_25_clean2sblunge -> mov_26_halfkneelclean;
    mov_26_halfkneelclean -> mov_27_cleansblungeclean;
    mov_26_halfkneelclean -> mov_29_halfkneelcap;
    mov_29_halfkneelcap -> mov_31_kneelwindmill;
    mov_31_kneelwindmill -> mov_33_kneelcapwindmill;
    mov_33_kneelcapwindmill -> mov_35_cap2ohsblunge;
    mov_27_cleansblungeclean -> mov_35_cap2ohsblunge;
    mov_33_kneelcapwindmill -> mov_36_kneelhipdrop;
    mov_36_kneelhipdrop -> mov_38_kneelcap2hip;
    mov_28_floorpress -> mov_30_floorpressroll;
    mov_30_floorpressroll -> mov_32_quartgu;
    mov_32_quartgu -> mov_34_halfgu;
    mov_34_halfgu -> mov_37_halfgu2hip;
    mov_37_halfgu2hip -> mov_42_halfgu2kneel;
  }

  mov_35_cap2ohsblunge -> mov_tgd;
  mov_35_cap2ohsblunge -> mov_tgu;
  mov_38_kneelcap2hip -> mov_tgd;
  mov_38_kneelcap2hip -> mov_tgu;
  mov_42_halfgu2kneel -> mov_tgd;
  mov_42_halfgu2kneel -> mov_tgu;

  ext_bw_squat -> mov_51_fourcountsquat
  ext_bw_altshinbox -> mov_52_rackaltshinbox;
  mov_12_clean -> mov_50_2hdeadclean2rack;



  mov_19_startstopcap -> mov_44_pushpress;
  mov_45_gobsquatcurl -> mov_39_boxsquat2boat;
  mov_53_hornygobsquat -> mov_39_boxsquat2boat;
  mov_22_gobsquathalo -> mov_45_gobsquatcurl;
  mov_22_gobsquathalo -> mov_53_hornygobsquat;
  mov_23_racksquat -> mov_47_racksquatpickup;
  mov_23_racksquat -> mov_48_thruster;

  // Ungrouped drills
  mov_44_pushpress -> mov_48_thruster;
  mov_55_backpullsituppress -> mov_72_deck;

  subgraph cluster_squat {
    label="Squats & Getup"

    // Getups
    mov_52_rackaltshinbox -> mov_54_shinboxpress
    mov_41_flatbackpullover -> mov_55_backpullsituppress;
    mov_49_seatedpress -> mov_55_backpullsituppress;

    // Squats
    mov_20_gobboxsquat -> mov_21_boxsquathalo;
    mov_21_boxsquathalo -> mov_22_gobsquathalo;
    mov_22_gobsquathalo -> mov_23_racksquat;
    mov_39_boxsquat2boat -> mov_72_deck;
    mov_40_bwspinalrock -> mov_43_spinalrock;
    mov_43_spinalrock -> mov_72_deck;
    mov_45_gobsquatcurl
    mov_47_racksquatpickup
    mov_51_fourcountsquat
    mov_53_hornygobsquat
  }

  ext_hc_dblswing -> ext_hc_dblrockit;
  ext_hc_dblrockit -> mov_63_dblrockit;
  mov_10_h2h -> mov_60_dblswing;
  

  mov_16_startstopclean -> mov_62_dblclean;
  mov_16_startstopclean -> mov_59_halfsnatchdown;
  mov_19_startstopcap -> mov_65_dblcap;
  mov_01_deadlift -> mov_56_suitcasedl;


  // Ungrouped drills
  mov_56_suitcasedl -> mov_57_dblsuitcase;  

  ext_hc_s2sswing -> mov_84_s2sswing;

  subgraph cluster_deadlift {
    label="Deadlifts"
    mov_56_suitcasedl -> mov_73_2hsbldl;
    mov_73_2hsbldl -> mov_75_2hssldl -> mov_77_shsldl;
    mov_75_2hssldl -> mov_84_s2sswing;
  }

  subgraph cluster_double {
    label="Doubles"
    mov_64_dbloutswing -> mov_63_dblrockit
    mov_57_dblsuitcase -> mov_58_dblsumodl;
    mov_60_dblswing -> mov_62_dblclean;
    mov_62_dblclean -> mov_65_dblcap;
    mov_62_dblclean -> mov_67_dblsquat;
    mov_67_dblsquat -> mov_68_dblclean2squat;
    mov_62_dblclean -> mov_71_deaddblclean;
    mov_58_dblsumodl -> mov_60_dblswing;
    mov_60_dblswing -> mov_64_dbloutswing;
    mov_68_dblclean2squat -> mov_74_dblhangclean2squat;
    mov_65_dblcap -> mov_76_dblhangcap;
    {mov_76_dblhangcap, mov_68_dblclean2squat} -> mov_78_dblcleansqpress;
    {mov_74_dblhangclean2squat, mov_78_dblcleansqpress} -> mov_80_dblhangcsp;
    {mov_78_dblcleansqpress} -> mov_82_dblcleanpresssq
    {mov_68_dblclean2squat} -> mov_83_dblcleansblunge
  }

  subgraph cluster_snatch {
    label="Snatch"
    mov_59_halfsnatchdown -> mov_61_halfsnatchup -> mov_66_snatch;
    mov_70_kneelsnatchup -> mov_79_kneelsnatchdown -> mov_81_kneelsnatch -> mov_66_snatch
    mov_66_snatch -> mov_69_snatchpress;
  }

  { rank = sink;
    Legend [shape=none, margin=0, label=<
    <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
     <TR>
      <TD COLSPAN="2"><B>Legend</B></TD>
     </TR>
     <TR>
      <TD>Prerequisites and next steps</TD>
      <TD BGCOLOR="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
     </TR>
     <TR>
      <TD>Drills</TD>
      <TD BGCOLOR="11"></TD>
     </TR>
     <TR>
      <TD>Warmup drills</TD>
      <TD BGCOLOR="7"></TD>
     </TR>
     <TR>
      <TD>Learning drills</TD>
      <TD BGCOLOR="9"></TD>
     </TR>
    </TABLE>
   >];
  }
}
@enddot
