// command to create this using graphviz:
// dot -Tpng workflow.dot -o workflow.png
digraph G {
  Start;
  SUBMITTED;
  APPROVED;
  REJECTED;
  AVAILABLE;
  ALERTED [label="AVAILABLE (ALERTED)"];
  EXPIRED;
  ARCHIVED;
  Removed;
  Start -> SUBMITTED [label="submit"];
  SUBMITTED -> APPROVED [label="approve"];
  SUBMITTED -> REJECTED [label="reject"];
  APPROVED -> REJECTED [label="reject"];
  APPROVED -> AVAILABLE [label="make available"];
  APPROVED -> AVAILABLE [label="make available (A)", color="blue"];
  AVAILABLE -> ALERTED [label="alert"];
  AVAILABLE -> ALERTED [label="alert (A)", color="blue"];
  AVAILABLE -> EXPIRED [label="expire"];
  AVAILABLE -> EXPIRED [label="expire (A)", color="blue"];
  ALERTED -> EXPIRED [label="expire"];
  ALERTED -> EXPIRED [label="expire (A)", color="blue"];
  EXPIRED -> ARCHIVED [label="archived (S)", color="green"];
  SUBMITTED -> SUBMITTED [label="submit changes"];
  APPROVED -> SUBMITTED [label="submit changes"];
  REJECTED -> SUBMITTED [label="submit changes"];
  AVAILABLE -> SUBMITTED [label="replace (N)", color="red"];
  ALERTED -> SUBMITTED [label="replace (N)", color="red"];
  EXPIRED -> SUBMITTED [label="submit changes (N)", color="red"];
  EXPIRED -> Removed [label="delete"];
  REJECTED -> Removed [label="empty"];
  SUBMITTED -> Removed [label="delete"];
  APPROVED -> Removed [label="delete"];
}

// blue: automatic (A)
// green: system (not UI) (S)
// red: creates new version (N)