みなさま、ちょっと知恵を貸してください。

いま、自前のソフトに、簡単なマクロ機能を実装しようとしています。
仕様は、だいたい以下の通りです。

・実行することの出来る最も小さい仕事を Job と呼ぶ。
・TJob は、「仕事の種類」と「パラメータ」プロパティを持っている。
・1つの Action で、最大 10個までの Job を登録することが出来る。
・一つのショートカットコマンドには、一つの Action が対応する。
・Action の集合体を Macro と呼ぶ。

で、いかに楽に、いかにエレガントに、いかに機能の追加を楽に出来るように
実装するかということで頭を悩ませているわけです。

TJobType = ( 仕事名1, 仕事名2, 仕事名3, ..., 仕事名n );

TJob = record
 仕事の種類: TJobType;
 パラメータ: string;
end;

TMAction = class( TCustomAction )
 Jobs: array [0..9] of TJob;
 JobsCount:Integer;
 ...
end;

TMMacro = class( TActionList )
end;