モジュール作成者
マニフェスト、アセット、機能
パッケージ コードに Fabled に対する直接の権限を与えずにモジュールを記述します。
正規マニフェスト
正規のファイル名は fabled.module.json です。 CLI は、正規ファイルが存在しない場合にのみ、従来の fabled-module.json を読み取ることができます。両方を含むプロジェクトは拒否されます。現在、manifestVersion は 1、パッケージ ID は publisher-id.module-slug で、リリースでは正確なセマンティック バージョンが使用されます。
- ID: ID、名前、説明、バージョン、発行者、ライセンス。
- 互換性: fabledApi と最小、検証済み、およびオプションの最大 Fabled バージョン。 gameSystems には * または明示的なシステム ID が含まれる場合があります。
- ランタイム: runtimeTier、ターゲット、activationEvents、コントリビューション、要求されたアクセス許可、関係、およびプライバシー宣言。
- 状態: オプションのストレージ、移行、サービス コントラクトを含む dataSchemaVersion。
- パッケージ データ: すべてのアセットは、安全な相対パス、タイプ、バイト長、および小文字の SHA-256 ダイジェストを宣言します。ロケールは、BCP-47 タグをロケール アセットにマップします。
目標と貢献
| モデル | 現在の v1 値 |
|---|---|
| ターゲット | アカウント、キャンペーン、VTT、キャラクター、フォージ |
| の投稿 | コマンド、コマンド配置、パネル、VTT エフェクト、コンテンツ パック、イベント ハンドラー、リアルタイム トピック、設定 |
| 配置スロット | グローバル コマンド、チャット コンポーザー、キャンペーン ブレード/設定、キャラクター アクション/シート、VTT ツールバー/コンテキスト メニュー/選択オーバーレイ |
| ランタイム層 | 宣言的、権限のあるDeclarative、workerPreview、serverPreview |
最小の機能エンベロープをリクエストします
権限は権限ではなく要求です。すべての必須またはオプションの機能には、人間が判読できる特定の理由が必要です。 Fabled は、機能が存在すること、選択したターゲットおよびランタイム層で利用可能であること、必要なアカウント、ユーザー、キャンペーン、または組み合わせた同意があることを検証します。
- 例を読む: 表示または所有されているコンテンツ/要素、キャンペーンの概要、表示されるシーン、制御または表示されるトークン、プレゼンス、表示されるチャットとダイス、モジュールの健全性、および独自の設定。
- アクションの例: セルフ ダイス ロール、ユーザー チャットの投稿、制御されたフレームワークの呼び出し、キャンペーン オーディオ/VTT 効果、トークン/ドア/フォグ/イニシアチブの書き込み、スコープ設定、モジュール所有のストレージ、モジュールのリアルタイム公開。
- network.fetch.declared はカタログに存在しますが、現在使用できず、許可されたターゲットもありません。
アセット、設定、ストレージ、サービス
JSON オートメーション、コンテンツ、エフェクト、フレーム、ロケール、スキーマ、移行アセットは構造的に制限されています。バイナリ イメージ、オーディオ、ワーカー、WebAssembly、およびその他のアセットは、レビューされたホスト/ランタイム コントラクトによって使用されない限り、パッケージ データのままです。
- 設定は、デバイス、アカウント、キャンペーン、または userCampaign スコープにすることができ、ブール値、整数、数値、文字列、色の値を使用できます。
- ストレージはデバイス、アカウント、キャンペーン、userCampaign、シーン、またはエンティティのスコープで、最大 5 MiB をリクエストし、アンインストール時の削除または 30 日間の保持を宣言します。
- データ スキーマ バージョンの変更には、連続した、制限された冪等の移行アセットが必要です。
- 提供および利用されるサービスは、バージョン、スキーマ、操作、コマンド、および必要な機能を宣言します。消費者はプロバイダーの権限を借りることはできません。