JSON Schema を貼り付けて変換先を選ぶと、スニペットをブラウザー内で生成します。引き継がなかったキーワードを明示し、OpenAI の strict モードが使えるかどうかも確認します。プロバイダーへの送信はありません。
ブラウザ内でローカルに実行このページは JSON Schema を読み取り、各プロバイダーが構造化出力に求める設定を書き出します。OpenAI の response_format、Anthropic のツール定義、Gemini の generationConfig、TypeScript の型のいずれかです。変換はブラウザー内でスキーマの木をたどるだけで、プロバイダーへの接続も API キーも使いません。
4 つのターゲットは同じキーワードを受け取るわけではないため、選んだターゲットが引き継げないキーワードはステータス行に列挙され、スニペットからは外れます。$ref や default が落ちるとモデルが返せる内容が変わるので、リクエストに貼る前にこの行を確認してください。
OpenAI には response_format オブジェクトと json_schema ブロックを出力します。strict を true と書くのは、スキーマ内のすべてのオブジェクトが additionalProperties を false にし、すべてのプロパティを required に並べている場合だけです。OpenAI の strict モードが受け取れるのはその形だからです。それ以外では strict: false とし、理由をコメントで残します。
Anthropic には input_schema に変換済みスキーマを持つ tool オブジェクトを出力し、tools 配列にそのまま渡せます。Gemini には型を大文字にした responseSchema を出力し、const は単一値の enum に、null 許容のユニオンは nullable に変換します。TypeScript にはプロパティ名が JSON のキーと完全に一致する interface を出力します。識別子として無効なキーは引用符で囲み、type: ["string","null"] のようなユニオンはそのまま残し、ルートがオブジェクトでない場合は export type のエイリアスにします。
合成と参照のキーワードは解決器が必要なため、$ref、$defs、anyOf、oneOf、allOf、not、if/then/else、patternProperties、prefixItems はどのターゲットにも引き継ぎません。OpenAI と Anthropic の出力が保持する制約(pattern、format、minimum、maxLength など)は、より狭いスキーマしか受け取らない Gemini では通知されます。
入れ子はルートから 8 階層までたどり、それより深い部分は空のスキーマに置き換えてステータス行で知らせます。TypeScript には minLength や pattern のような制約を書く場所がありません。型は形を表すもので検証はしないため、interface には含まれません。
スキーマ名は英数字・ハイフン・アンダースコアに整形します。空欄なら structured_response を使い、64 文字を超える名前はプロバイダー向けターゲットでは短縮し、TypeScript では有効な識別子にします(先頭が数字なら _123report)。テキストを変更した場合は、実際に使った名前をステータス行に表示します。
スニペットを生成できない場合(空入力、壊れた JSON、配列、type も properties もないオブジェクト)は理由を示し(JSON エラーは行と列付き)、出力欄を空にします。古いスニペットを今回の結果と取り違えることはありません。スキーマ、生成コード、名前はブラウザーの外に出ません。