Any data that can be emitted by the application can be stored as variable.
Application variable can be bound in the editor at development time and at run time the values are fetched and used as inputs to workflows
Note that some TinkEditorHandlers like those for form elements have default workflows which bind their values to some variable
The source of a variable is anything that can produce it.
A widget for example can produce the value of one of its attributes which is assigned to a variable
A workflow action as well can output values that is bound as the source of a variable
A variable target is anything that wants to be told when that variable has changed.
An attribute of a widget for example can be bound to a target
This is for "push" based targets. Note that workflow actions use a "pull" based approach where they request the latest value of a variable at any point during their evaluation