拡張ポイントの作り方
module public
provides [person]; // personは公開型名となるtype person = @person
object {
"name" : string,
"age" : integer(minimum=0),
* : any
}
& // インターセクション演算子
personExt // 拡張ポイント
;// 拡張ポイントの実体を外部参照にする
type personExt = @person user.Ext:personExtObj;
module user.Ext
provides [personExtObj]; // user.Ext:personExtObjを提供// 拡張部分をオブジェクトとして書く
type personExtObj = object {
"mailAddress" : @mail string,
* : any
};