masao-json-formatは、Canvasまさおのステージデータを移植可能なJSON形式で表現するための形式です。正男の相互運用性は、masao-json-formatを使用するサービスとアプリの間で期待できます。
masao-json-formatを使用するサービスなど
masao-json-formatの使用方法
自ら実装する
masao-json-formatは、以下の仕様で定義されています。この仕様に従ってJSONを解釈し、そのようなJSONを出力することで、masao-json-formatを処理するアプリケーションを作成できます。
masao-jsモジュールを使用する
masao-jsモジュールは、masao-json-formatの読み取りと書き込みをサポートしています。このモジュールを使用すると、誤ったデータの読み取りまたは書き込み時にエラーが発生するため、masao-json形式のデータを安全に処理できます。
仕様
現在のmasao-json-formatの最新バージョンはdraft-4です。
JSON Schema
masao-json-formatを定義したJSON Schemaがあります。
masao-json-format (draft-4)
masao-json-formatは、次のような構造のオブジェクトです。以下に定義されているフィールドに加えて、最上位にアプリケーション固有のフィールドを含めることができます。 アプリケーション固有のフィールドは、将来のフィールド追加との競合を避けるために、_(アンダーバー)で始めることをお勧めします。
{
"masao-json-format-version": "draft-4", // required
"version": <version-string>, // required
"metadata": <metadata-object>, // optional
"params": <params-object>, // required
"script": <script-string>, // optional
"advanced-map": <advanced-map-object> // optional
}
version
正男のバージョンを表す文字列で、以下のうちいずれかです。
"2.7", "2.8", "2.81", "2.9", "3.0", "3.11", "3.12", "fx", "fx2", "fx3", "fx4", "fx5", "fx6", "fx7", "fx8", "fx9", "fx10", "fx11", "fx12", "fx13", "fx14", "fx15", "fx16", "kani", "kani2"
ただし、Canvasまさおはすべてのバージョンと互換性があるわけではありません。 2.8、fx16、kani2には互換性のあるバージョンのCanvasまさおがあります。 この項目は必須です。
"2.7", "2.8", "2.81", "2.9", "3.0", "3.11", "3.12", "fx", "fx2", "fx3", "fx4", "fx5", "fx6", "fx7", "fx8", "fx9", "fx10", "fx11", "fx12", "fx13", "fx14", "fx15", "fx16", "kani", "kani2"
ただし、Canvasまさおはすべてのバージョンと互換性があるわけではありません。 2.8、fx16、kani2には互換性のあるバージョンのCanvasまさおがあります。 この項目は必須です。
script
正男を拡張するJavaScriptコード。このコードがuserJSCallbackという名前の関数を定義している場合、その関数は拡張JSコールバックになります。
advanced-map
正男が第3版マップデータを使用する場合は、このフィールドにマップデータオブジェクトを指定します。このフィールドが存在しないかnullの場合、第3版のマップデータは使用されていないと見なされます。 このフィールドが存在する場合、paramsのマップデータのフィールドは無視されます。 TODO(第3版マップデータ)
仕様改訂の提案
管理者のTwitterで、masao-json-formatの機能拡張と仕様改訂の提案を受け付けます。このwikiへの貢献のページもチェックしてください。