A message is the human-readable version of a script. It can be stored into a database, retrieved and sent to the script executors. Each Action has its own associated message.

Action Messages

Messages look like this:
struct Transfer {
bytes32 scriptId;
address token;
address destination;
bytes1 typeAmt;
uint256 amount;
address user;
address executor;
uint256 chainId;
uint256 tip;
Balance balance;
Follow follow;
Frequency frequency;
Price price;
Repetitions repetitions;
In all messages, you'll find some recurring parts:
  1. 1.
    Action related fields (in this example, from line 2 to 10 included), are the fields of the message that describe what the action has to do
  2. 2.
    Condition related fields (from line 11 to 15), are the fields describing the script conditions.

Condition Messages

Each action message contains multiple sub-messages representing the conditions. These messages have also some recurring information: an Enabled field and a list of fields describing when the condition is triggered.
Some examples:
struct Balance {
bool enabled;
address token;
bytes1 comparison;
uint256 amount;
struct Frequency {
bool enabled;
uint256 delay;
uint256 start;