phy: 選択肢をまたぐ共通キーは独立したVariantGroupに分けて表す

VIAの定義824件を調べ、複数の選択肢で成立するキーを持つ基板を2件見つけた(LW67、MACRO1)。
どちらも独立した2つの選択を1つの選択肢リストに畳んだもので、VariantGroupを2つ置けば
キーを複製せずに表せる。残るのは、積のうち一部しか提供しない基板の扱いだけになった。

Journal: journal/2026-09-21-variant-shared-key.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
This commit is contained in:
2026-09-21 19:00:46 +09:00
co-authored by Claude Opus 5
parent 12a47fe822
commit ea7bf01e72
2 changed files with 144 additions and 5 deletions
+8 -5
View File
@@ -149,6 +149,8 @@ PHYは全バリアントのキーを同時に持つ。基板上のフットプ
- 部品ノードもVariantの配下に置ける。1Uキーとロータリーエンコーダーの選択がこれにあたる
- Variantの中に別のVariantGroupを置ける。あるバリアントを選んだときだけ現れる選択肢を表す
- 選択箇所が複数ある場合はVariantGroupを複数置く。同じ親の下に並べてよい
- 複数の選択肢に共通して存在するキーは、選択を独立したVariantGroupに分けて表す。
ANSI/ISOとBackspaceの分割のように、1つの選択肢リストに畳まれている基板があるため
VariantGroupはクラスターと同じ変換を持つ。Variantは変換を持たない。
バリアントは同じ場所を占める代替物であり、選択によって配下の絶対配置が動く構造を作らないため。
@@ -405,9 +407,10 @@ Beyond KLEはスイッチの品種を持たないため、対応づける先が
- 現状の認識: キーのローカル原点(左上角)・キー中心・境界矩形の角と中心が候補。相対グリッドとは別の機構になる
- 格上げ条件: 原点移動を実装し、吸着なしで足りるか、足りない場合どの候補が要るかを確認する
### P-15 複数のバリアントで共通のキーをどう置くか
### P-15 提供されない組み合わせを禁じる必要があるか
- 位置づけ: 未解決の問い。本文「レイアウトバリアント」は1つのキーが1つのVariantにしか属さない形になっている
- 現状の認識: 3択のうち2つで存在し1つでは存在しないキーは、今の木では表せない。同じキーを2つのVariantに
複製すると別IDになり、ELC・IDX・MAPの記述が二重になる。そもそもそういう構成が実在するかを確認していない
- 格上げ条件: 選択肢をまたいで共通のキーが要る実在の基板を探す。あれば表現方法を決める
- 位置づけ: 未解決の問い。本文「レイアウトバリアント」は複数のVariantGroupの組み合わせに制限を持たない
- 現状の認識: 選択肢をまたいで共通のキーを持つ基板は実在し、独立した選択に分けてVariantGroupを2つ置けば
キーを複製せずに表せる。ただし2つの選択の積のうち一部しか提供しない基板(MACRO1)があり、
今の木では提供されない組み合わせも選べてしまう
- 格上げ条件: 組み合わせの禁止を表現する必要があるかをユーザーが決める