An action will do some work when executed with an input. Actions are useful in performing side-effecting work upon user interaction, such as when a button is clicked. Actions can also be automatically disabled based on a property, and this disabled state can be represented in a user interface by disabling any controls associated with the action.