digraph {
        /* M_close pathways */
        title [label="Terminator\nMachine" style="dotted"]

        initial [style="invis"]
        initial -> Snmo [style="dashed"]

        Snmo [label="Snmo:\nnameplate active\nmailbox active\nopen" color="orange"]
        Sno [label="Sno:\nnameplate active\nmailbox done\nopen"]
        Smo [label="Smo:\nnameplate done\nmailbox active\nopen" color="green"]
        S0o [label="S0o:\nnameplate done\nmailbox done\nopen"]

        Snmo -> Sno [label="mailbox_done"]
        Snmo -> Smo [label="nameplate_done" color="orange"]
        Sno -> S0o [label="nameplate_done"]
        Smo -> S0o [label="mailbox_done"]

        Snmo -> Snm [label="close"]
        Sno -> Sn [label="close"]
        Smo -> Sm [label="close" color="red"]
        S0o -> P_stop [label="close"]
        
        Snm [label="Snm:\nnameplate active\nmailbox active\nclosing"
                     style="dashed"]
        Sn [label="Sn:\nnameplate active\nmailbox done\nclosing"
                    style="dashed"]
        Sm [label="Sm:\nnameplate done\nmailbox active\nclosing"
                    style="dashed" color="red"]

        Snm -> Sn [label="mailbox_done"]
        Snm -> Sm [label="nameplate_done"]
        Sn -> P_stop [label="nameplate_done"]
        Sm -> P_stop [label="mailbox_done" color="red"]

        {rank=same; S_stopping Pss S_stopped}
        P_stop [shape="box" label="RC.stop" color="red"]
        P_stop -> S_stopping [color="red"]

        S_stopping [label="S_stopping" color="red"]
        S_stopping -> Pss [label="stopped"]
        Pss [shape="box" label="B.closed"]
        Pss -> S_stopped

        S_stopped [label="S_stopped"]

        other [shape="box" style="dashed"
               label="close -> N.close, M.close"]
               

}