それぞれのcreateActionメッセージは、それが作成したアクションオブジェクトを返します。異なる種類のcreateActionメッセージは、名前が整合した異なる型のActionオブジェクトを返します。これらのActionオブジェクトは、そのActionの初期化に使用したすべての情報へのアクセスを提供します。下記に定義されたActionオブジェクト型は、それらの内容へのアクセスに利用できるメッセージも含め、完成しています(.. 現在、Actionオブジェクトの実装は、パラメータや戻り値の型づけがdefobjのActionTypeに引き継がれるように変更が進んでいます)。
(.. 引数の型づけの代替アプローチは現在開発中ですが、これらは、createActionメッセージの現在の形式を置き換えるのでなく、追加されることになるでしょう)
createActionメッセージは、メッセージのすべての引数をオブジェクトid型になるように宣言しますが、グローバルな移植性の前提による制限の範囲内で、他のポインタや値を自由にキャストできます。これらは、すべてのマシンアーキテクチャに渡った移植性はありません。しかし、Swarmがサポートされるであろう32-bitと64-bitアーキテクチャでは、移殖できると予測されます。あなたが送るメッセージは、id型にキャストする前に宣言し、実際に渡す引数の型を受け取らなければなりません。
ActionCreatingは、このプロトコルがScheduleと共有できるようにするためだけに、ActionGroupへのcreateActionメッセージを定義します。それらは、時刻0でスケジュールのアクションを作成する便利なインターフェイスとなります。