言語の旧バージョンでは、既定値以外を使用してルールを作成できました。これにより、エバリュエータで計算できる値が見つからない場合に実行時にエラーが発生する可能性がありました。これはパラメータ ルールでも共通でした。パラメータ ルールでは単純にパラメータが指定されていないことが報告されました。Intent Language バージョン 3.0 では、"空の" ルールは使用できなくなりました。代わりに、2 つの一般的に使用されるキーワードが使用されます。Required と NoValue です。評価中に使用されている場合、Required は "指定されていない必須の値" エラーが発生しますが、NoValue は NoValue として返されます(エラーは発生しません)。Required パラメータはパーツ エディタでパーツを作成できるようになる前に必ず指定する必要があります。
この違いは、空のルールが検出されたときに IntentUp 変換が合理的に Required または NoValue を指定できないことを意味します。ただし、空のルールの目的は常に明確なわけではないため、IntentUp はその場所に[[Required|NoValue]]を挿入します。この構造はコンパイルされず、デザインのロードは失敗します。ファイルはその後、ルールを検査して Required と NoValue のどちらを使用するべきかを判断した後に手動で修正する必要があります。
言語要素を構築するルールを変換することはできません。このようなルールは通常、計算された文字列と結合されている文字列リテラルで構成されています。結果はその後言語ソースとして Intent に提供されます。このようなすべてのルールは、新しい構文に変換する必要があります。たとえば、次のいずれかを入力します。

参照チェーンのように、言語要素を解析するためにユーザが文字列検索機能を使用する場合があります。参照チェーンの構文が変更されているため、これらのルールは失敗します。
Intent Language の旧バージョンでは、すべての言語構成が値を返す式でした。Intent Language バージョン 3.0 では、同じ構成の多くが値を返さないステートメントになっているか、ステートメントまたは式の両方が使用できるようになっています。ステートメントとして使用した場合、すべての戻り値は無視されます。
以前は If-then-else 式が常に値を返していたため、値ではなく効果に使用された場合に “無効な” else 分岐となっていました。以下に例を示します。

この else 節はまったく使用されません。これは次のように変換されます。

IntentUp はこのような問題の検出を試み、新しい “If-Then” 構成を使用するように書き直しますが、それができない場合には、手動で次のように書き直す必要があります。

Intent Language バージョン 3.0 では、すべてのローカル変数を宣言する必要があります。以前のバージョンでは必要ありません。このため、IntentUp はステートメント ブロックのすべてのローカル変数に Dim ステートメントを追加します。このような変数のタイプは不明なため、任意タイプとして宣言されます。このような宣言はアプリケーションでの問題の元を隠すことがよくあるため、既知の場合には特定のタイプに変更することをお勧めします。
Intent Language バージョン 3.0 には、以前のバージョンで使用できた Loop 式と同等の単一 Loop 構成はありません。代わりに、異なる状況で使用できるいくつかの反復構成があります。IntentUp は指定された Loop が新しい反復構成に変換できるかどうかの判断を試みません。代わりに、IntentUp と Intent Language バージョン 3.0 は、古いループの完全に同じように動作するコードへの正確なマッピングを可能とする “Compatible Loop” 構文をサポートします。
Ref 関数は参照チェーンを表す文字列を使用します。参照チェーンの構文が変更されました。互換性の理由から、Intent Language バージョン 3.0 では以前の Intent 言語バージョンのコロン ベースの構文を受け入れます。このため、次のようなステートメントは、

次のように変換されますが、

正常に機能します(wayToUpdate が文字列と評価されることを前提としています)。ただし、これは言語ソースを文字列として取るその他の関数ではあてはまりません。
Intent の旧バージョンでは、単項 ‘–‘ は数値とブーリアン値の両方で使用されていました。Intent Language バージョン 3.0 では、異なる 2 つの演算子が使用されます。数字ではマイナス記号がそのまま使用されますが、ブーリアンでは論理演算子 NOT が使用されます。ほとんどの場合、(リテラルでない限り)トランスレータは関連する値のタイプを知らないため、演算子の変換は試みません。オペランドがバイナリ ブーリアン式の場合、演算子を NOT に変換しません。
Intent の以前のバージョンでは、末尾のカンマまたは区切り文字は許可されていました(また、無視されていました)。{1, 3, } のような一覧は 2 つの項目の一覧として解析されました。IntentUp は以前の解析テクノロジを使用するため、これらは許可され、無視されます。ただし、これらは入力で無視されるため、出力に末尾のカンマがなくなることを意味します。また、以前の末尾の区切り文字の許容に慣れているユーザは、それらが許容されなくなっており、使用すると構文エラーが発生することを把握する必要があります。