Exec
An Exec (short for execution) is one of the core elements of the Coach language and probably the most important one. It is a named and parameterized collection of Measure and Specify commands (among others) that when applied (via the Apply command) generates the specification of what the athlete should perform and what he/she should measure.
Definition
To define an Exec you only need to give it a name with the usual naming limitations i.e. the name has to consist
only of letter characters _ and ?. The Trainerflow convention is to use a lowercase name for execs.
This can be done in two ways either by right-clicking and selecting New > Exec or by pressing Space and then E.

Navigation
After you have created the Exec you can navigate inside it by simply clicking on its name

or (available only when the exec is focused) by pressing Ctrl+↓. You can navigate out of the exec simply by clicking on the location bar at the top right of the editor

or by pressing Ctrl+↑.
Commands
You will notice that inside an exec not all commands are available. This is because its purpose is to generate the specification for the athlete only, so you can only define inputs, outputs and actions and use the specify, measure, decide and ask commands.
Parameters (advanced)
An exec can also accept parameters that their values are provided when you apply it. Using parameters is a
great way to re-use the same exec. For example say we have an exec that specifies duration for the action
Run to be 45|min|. Every application of this exec specifies the same 45|min| but what if we wanted to
make it specify 60|min| on Mondays? This is exactly what the parameters are for.
A parameter has a name (with the usual naming limitations) and you can think of it as a placeholder for a value that will be provided when it is Applied. In order to create a parameter you should right-click on the exec name at the top and select Add a parameter

After you give it a name you can use the parameter in an expression like it is a regular value and when you are ready to Apply this exec you will be asked its real value.

NOTE: In the above Apply, time is a parameter that its value is needed.
Usage
See the apply command.