msc { upstart [label="Upstart"], mir [label="Mir"], unity [label="Unity"], app [label="Application"]; upstart -> unity [label="Starting Application"]; upstart -> app [label="Start"]; app -> mir [label="Request Session"]; mir -> unity [label="Session allowed"]; unity -> mir [label="Allowed"]; mir -> app [label="Session Created"]; app -> mir [label="Request Surface"]; ---; app -> upstart [label="Stop"]; upstart -> unity [label="Stopped Application"]; unity -> mir [label="Destroy Session"]; }