Finite state machines, DAGs, and UX principles for drag and drop editors | Hacker News Reader