> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Version マスターデータリファレンス

マスターデータのフォーマットと インポートする各種モデルのリファレンス




## マスターデータのフォーマット


**JSON**
```json
{
  "version": "2019-10-09",
  "versionModels": [
    {
      "name": "[string]バージョンモデル名",
      "metadata": "[string?]メタデータ",
      "scope": "[string (enum)]判定に使用するバージョン値の種類",
      "type": "[string (enum)]バージョンチェックモード",
      "currentVersion": {
        "major": "[int]メジャーバージョン",
        "minor": "[int]マイナーバージョン",
        "micro": "[int]マイクロバージョン"
      },
      "warningVersion": {
        "major": "[int]メジャーバージョン",
        "minor": "[int]マイナーバージョン",
        "micro": "[int]マイクロバージョン"
      },
      "errorVersion": {
        "major": "[int]メジャーバージョン",
        "minor": "[int]マイナーバージョン",
        "micro": "[int]マイクロバージョン"
      },
      "scheduleVersions": [
        {
          "currentVersion": {
            "major": "[int]メジャーバージョン",
            "minor": "[int]マイナーバージョン",
            "micro": "[int]マイクロバージョン"
          },
          "warningVersion": {
            "major": "[int]メジャーバージョン",
            "minor": "[int]マイナーバージョン",
            "micro": "[int]マイクロバージョン"
          },
          "errorVersion": {
            "major": "[int]メジャーバージョン",
            "minor": "[int]マイナーバージョン",
            "micro": "[int]マイクロバージョン"
          },
          "scheduleEventId": "[string?]バージョンチェックを有効化する期間を設定した GS2-Schedule のイベントGRN"
        }
      ],
      "needSignature": "[bool]判定するバージョン値に署名検証を必要とするか",
      "signatureKeyId": "[string]暗号鍵GRN",
      "approveRequirement": "[string (enum)]承認の必要性"
    }
  ]
}
```


|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| version | string | | ✓ | 2019-10-09 | | マスターデータのフォーマットバージョン |
| versionModels | [List&lt;VersionModel&gt;](#versionmodel) |  |  |  |  ~ 100 items | バージョンモデル<br>バージョンモデルには、ログインを受け入れるが、バージョンアップ出来ることを通知する警告バージョンと、ログインを受け入れないエラーバージョンを設定できます。<br><br>現在のバージョンをクライアントに申告させるのに、署名の有無を指定できます。<br>署名付きを選択した場合、クライアントは嘘のバージョン申告を出来なくなります。 |

## モデル

### VersionModel

バージョンモデル<br>

バージョンモデルには、ログインを受け入れるが、バージョンアップ出来ることを通知する警告バージョンと、ログインを受け入れないエラーバージョンを設定できます。<br>

現在のバージョンをクライアントに申告させるのに、署名の有無を指定できます。<br>
署名付きを選択した場合、クライアントは嘘のバージョン申告を出来なくなります。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| versionModelId | string |  | ※ |  |  ~ 1024文字 | バージョンモデルGRN<br>※ サーバーが自動で設定 |
| name | string |  | ✓ |  |  ~ 128文字 | バージョンモデル名<br>バージョンモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| metadata | string |  |  |  |  ~ 2048文字 | メタデータ<br>メタデータには任意の値を設定できます。<br>これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 |
| scope | 文字列列挙型<br>enum {<br>&nbsp;&nbsp;"passive",<br>&nbsp;&nbsp;"active"<br>}<br> |  | ✓ |  |  | 判定に使用するバージョン値の種類<br>バージョンチェックに使用するバージョン値の取得方法を決定します。「passive」はチェック時にクライアントが現在のバージョンを申告する方式、「active」はユーザーが過去に明示的に承認したバージョン（利用規約への同意など）を使用する方式です。"passive": クライアントから送信 / "active": 過去明示的に承認したバージョン /  |
| type | 文字列列挙型<br>enum {<br>&nbsp;&nbsp;"simple",<br>&nbsp;&nbsp;"schedule"<br>}<br> |  |  | "simple" |  | バージョンチェックモード<br>バージョンチェックの方式を選択します。「simple」は固定の警告・エラーバージョン閾値を使用し、「schedule」は GS2-Schedule のイベントを利用して時期に応じた異なるバージョン閾値を適用します。"simple": シンプル / "schedule": 時系列切り替え /  |
| currentVersion | [Version](#version) | {type} == "simple" and {scope} == "active" | ✓※ |  |  | 現在のバージョン<br>このバージョンモデルの最新バージョンです。「simple」モードの「active」スコープでのみ使用され、ユーザーがバージョン更新を承認・確認する際に現在のバージョンを通知します。<br>※ type が "simple" で かつ scope が "active" であれば 必須 |
| warningVersion | [Version](#version) | {type} == "simple" | ✓※ |  |  | バージョンアップを促すバージョン<br>アップグレード通知を表示する最低バージョン閾値です。クライアントのバージョンがこの値を下回る場合、ログインは許可されますがユーザーにアップグレードが促されます。比較はメジャー、マイナー、マイクロの順に階層的に行われます。<br>※ type が "simple" であれば 必須 |
| errorVersion | [Version](#version) | {type} == "simple" | ✓※ |  |  | バージョンチェックでエラーになるバージョン<br>ログインを許可する最低バージョン閾値です。クライアントのバージョンがこの値を下回る場合、バージョンチェックがエラーとなりログインがブロックされます。比較はメジャー、マイナー、マイクロの順に階層的に行われます。<br>※ type が "simple" であれば 必須 |
| scheduleVersions | [List&lt;ScheduleVersion&gt;](#scheduleversion) | {type} == "schedule" |  |  | 0 ~ 10 items | 時系列で切り替わるバージョンチェック内容リスト<br>GS2-Schedule のイベントに基づいて異なるタイミングで有効になるバージョンチェック設定のリストです。更新を必須にする前に警告を表示するなど、段階的なバージョン強制が可能になります。<br>※ type が "schedule" であれば 有効 |
| needSignature | bool | {scope} == "passive" | ✓※ |  |  | 判定するバージョン値に署名検証を必要とするか<br>有効にすると、クライアントはバージョン申告と共に暗号署名を提供する必要があります。これにより、クライアントがバージョンチェックを回避するために偽のバージョンを申告することを防止します。スコープが「passive」の場合にのみ適用されます。<br>※ scope が "passive" であれば 必須 |
| signatureKeyId | string | {needSignature} | ✓※ |  |  ~ 1024文字 | 暗号鍵GRN<br>※ needSignature が "true" であれば 必須 |
| approveRequirement | 文字列列挙型<br>enum {<br>&nbsp;&nbsp;"required",<br>&nbsp;&nbsp;"optional"<br>}<br> | {scope} == "active" |  | "required" |  | 承認の必要性<br>このバージョンモデルに対するユーザー承認が必須か任意かを制御します。「required」の場合、ユーザーが現在のバージョンを承認していないとバージョンチェックが失敗します。「optional」の場合、承認状態に関係なくバージョンチェックが通過します。スコープが「active」の場合にのみ適用されます。"required": 承認が必要 / "optional": 任意の承認 / <br>※ scope が "active" であれば 有効 |

---

### Version

バージョン<br>

3階層（メジャー、マイナー、マイクロ）のバージョン番号を表します。バージョンの比較はメジャー、マイナー、マイクロの順に階層的に行われます。バージョンチェックの警告・エラー閾値の定義に使用されます。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| major | int |  | ✓ |  | 0 ~ 2147483646 | メジャーバージョン<br>バージョン比較で最も優先度の高いコンポーネントです。メジャーバージョンの差異はマイナーバージョンやマイクロバージョンより優先されます。 |
| minor | int |  | ✓ |  | 0 ~ 2147483646 | マイナーバージョン<br>バージョン比較で2番目に優先されるコンポーネントです。メジャーバージョンが同一の場合にのみ比較されます。 |
| micro | int |  | ✓ |  | 0 ~ 2147483646 | マイクロバージョン<br>バージョン比較で最も優先度の低いコンポーネントです。メジャーバージョンとマイナーバージョンがともに同一の場合にのみ比較されます。 |

---

### ScheduleVersion

時系列で切り替わるバージョン<br>

GS2-Schedule のイベントで制御される特定の期間中に有効になるバージョン閾値（現在、警告、エラー）のセットを定義します。複数のスケジュールバージョンを設定することで、古いクライアントをブロックする前にユーザーに警告するなど、段階的なバージョン強制を実装できます。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| currentVersion | [Version](#version) |  | ✓ |  |  | 現在のバージョン<br>このスケジュール期間中に利用可能な最新バージョンです。「active」スコープでユーザーが更新を承認する際に現在のバージョンを通知するために使用されます。 |
| warningVersion | [Version](#version) |  | ✓ |  |  | バージョンアップを促すバージョン<br>このスケジュール期間中にアップグレード通知を表示する最低バージョン閾値です。ログインは許可されますがユーザーにアップグレードが促されます。 |
| errorVersion | [Version](#version) |  | ✓ |  |  | バージョンチェックでエラーになるバージョン<br>このスケジュール期間中にログインを許可する最低バージョン閾値です。クライアントのバージョンがこの値を下回る場合、バージョンチェックがエラーとなりログインがブロックされます。 |
| scheduleEventId | string |  |  |  |  ~ 1024文字 | バージョンチェックを有効化する期間を設定した GS2-Schedule のイベントGRN<br>このバージョン閾値セットが有効になる期間を制御する GS2-Schedule のイベントを指定します。ここで定義されたバージョンチェック設定は、指定したイベントがアクティブな期間にのみ適用されます。 |

---



