ルールを構成する。
つまり言い換えれば、key:value組が複数定義される、Map型のオブジェクトとして定義されます。 想定しているルール属性
型定義草案
code:example.json
{
"Rules":[
{
"id":string,
"ruleName":"version",
"Japanese":"バージョン",
"English":"Version",
"JDescription":"KSSRsで扱うゲームソフトのバージョンについての制限です。",
"EDescription":"",
"ruleTypeCollections": [
{
"typeName": "Any"
"Japanese": "バージョンの制約はありません。",
"English": "",
},{
"typeName": "Tagging",
"Japanese": "バージョンがいくつであるかを明示する必要があります。",
},{
"typeName": "Restriction(${version})",
"Japanese": "バージョン${version}で取得された記録のみ扱います。"
}
]
},
]
}
属性定義のための仕様
code:typescript
interface IRuleAttributeWithoutCollection{
id:string;
ruleName:string;
Japanese:string;
English:string;
JDescription:string;
EDescription:string;
}
interface IRuleClassItem{
typeName:string;
Japanese:string;
English:string;
JDescription:string;
EDescription:string;
}
ゲームモードが持つ情報
code:typescript
interface AppliedGameModeRule{
id:string;
appliedClassID:AppliedClassInfo[]
note:string;
}
interface AppliedClassInfo{
id:string;
scope:MultiLanguageString;
note:MultiLanguageString;
}
IDの解決後
code:typescript
interface AppliedGameModeRuleResolved{
id:string;
ruleName:string;
title:string;
description:string;
appliedClassID:AppliedClassInfoResolved[]
note:string;
}
interface AppliedClassInfoResolved{
id:string;
title:string;
description:string
scope:MultiLanguageString;
note:MultiLanguageString;
}