Ways to define states, transitions, and reusable dynamic-programming structures.