diff --git a/spec/syntax.md b/spec/syntax.md
index f1073675e..fd1101ace 100644
--- a/spec/syntax.md
+++ b/spec/syntax.md
@@ -97,6 +97,15 @@ Attempting to parse a _message_ that is not _valid_ will result in a _Data Model
A **_message_** is the complete template for a specific message formatting request.
+A **_variable_** is a _name_ associated to a resolved value.
+
+An **_external variable_** is a _variable_
+whose _name_ and initial value are supplied by the caller
+to MessageFormat or available in the _formatting context_.
+Only an _external variable_ can appear as an _operand_ in an _input declaration_.
+
+A **_local variable_** is a _variable_ created as the result of a _local declaration_.
+
> [!NOTE]
> This syntax is designed to be embeddable into many different programming languages and formats.
> As such, it avoids constructs, such as character escapes, that are specific to any given file