phy: 公開KLE JSON 1505件で変換可否を確かめ、書き戻しの制約を加える
VIAの定義とKLE本家のプリセット・サンプルを集め、本家の serial.js を通して往復させた。 幾何は全件無損失で、PHYで表せないKLEの幾何情報は無かった。 KLEは p, sm, sb, st を空文字に戻す指定を無視するため、混在する配置は書き戻せない。 本家が読めないJSONも実在するので、取り込みの寛容さを問いとして残す。 Journal: journal/2026-09-21-kle-corpus.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
This commit is contained in:
+11
@@ -328,6 +328,8 @@ const kleData = (ConfigObject | KeyLabel)[][]
|
||||
- ユニットサイズ(mm)、ビジュアルオフセット、クラスター構造、部品ノード、per-key LEDはKLE JSONに出力されない
|
||||
- バリアント構造はKLE JSONに出力しない。VariantGroupごとにバリアントを1つ選び、その配下だけを畳んで出力する
|
||||
- 部品グループ・スイッチの向きはKLE JSONに出力しない。sm, sb, st には取り込み時に保持した値をそのまま書き戻す
|
||||
- p, sm, sb, st は空文字に戻す指定がKLE側で無視される。値を持つキーと持たないキーが混在する配置は、
|
||||
KLEで開いた時点で後続のキーに前の値が残る
|
||||
- KLEの `p` はキーキャップのプロファイル名(SA、DCSなど)であり、PHYのプロファイルとは対応させない
|
||||
|
||||
### KLE JSONの取り込み
|
||||
@@ -340,6 +342,8 @@ const kleData = (ConfigObject | KeyLabel)[][]
|
||||
- 構造の復元は保証しない。KLE側での編集が大きいほど、クラスター構造は失われる
|
||||
- 配列の順番は照合に使わない。KLEは保存時にキーを「角度 → rx → ry → y → x」の順に並べ替えるため、順番は形状から決まる以上の情報を持たない
|
||||
|
||||
r, rx, ry を行の先頭以外に置いたKLE JSONが公開されている。KLE本家はこれを読み込まずエラーにする。
|
||||
|
||||
KLEの rx, ry, r はキーの絶対配置 (x, y, rotation) に変換して取り込む。元の rx, ry は保持しない。
|
||||
|
||||
見た目の属性(c, t, p, a, f, f2, fa, l, n)は、KLE JSONへ書き戻せるように保持する。どの層で持つかは決まっていない。
|
||||
@@ -363,6 +367,13 @@ Beyond KLEはスイッチの品種を持たないため、対応づける先が
|
||||
- 現状の認識: 形状の許容誤差、ラベルの扱い、複数候補がある場合の決め方が未定
|
||||
- 格上げ条件: 照合規則を決めたうえで、KLE本家でキーの移動・追加・削除をしたJSONを取り込み、意図どおりに対応づくことを確認する
|
||||
|
||||
### P-16 KLE本家が拒否するJSONを取り込むか
|
||||
|
||||
- 位置づけ: 未解決の問い。本文「KLE JSONの取り込み」が扱えていない
|
||||
- 現状の認識: r, rx, ry を行の先頭以外に置いたJSONが公開されている(1505件中1件)。KLE本家はエラーにするが、
|
||||
VIAのパーサーは読める。本家に合わせて拒否するか、読めるものは読むかが未定
|
||||
- 格上げ条件: 取り込みの寛容さの方針をユーザーが決める
|
||||
|
||||
### P-6 キーキャップの見た目情報を持つ層
|
||||
|
||||
- 位置づけ: 本文「見た目の属性は保持する。どの層で持つかは決まっていない」の未解決部分
|
||||
|
||||
Reference in New Issue
Block a user