Provides commands that modify the state of the Design Engine.

## Package Specification

The application modifies a report design using a set of commands. Each command does the following:

1. Checks the arguments of the call.
2. Validates that the requested change is valid.
3. Creates an activity record to perform the change in a way that can be undone.

Most commands have four parts:

- The command class itself.
- An exception thrown if an error occurs. Many exceptions provide detailed error codes to clearly identify what went wrong.
- The activity record class that records the change in a way that can be undone and redone.
- A notification event sent to the UI each time the operation is done, undone or redone.

## Related Documentation

The application generally uses the API handle classes to work with a design. These handle classes use the commands defined here to modify the design.