phy: プロファイルをファイル単位の器に置き、キーはIDで参照する
保存形式に PhyFile を書き、profiles を木の外に出した。同じ定義を複数のキーに 複製しないため、Key.profile は実体ではなくIDの参照にする。 ビジュアル表現は上面矩形の4辺インセット + R とし、非対称な上面を表せる形にした。 プロファイル内の距離はすべてmmに統一。 Journal: journal/2026-09-21-profile-container.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01246a5KFLmwcRXriZvX8fdJ
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# プロファイル定義の置き場
|
||||
|
||||
## 結論
|
||||
|
||||
- ファイル単位の器 `PhyFile` を保存形式に書き、`profiles: Profile[]` をそこに置く
|
||||
- `Key.profile` は Profile 実体ではなく ID 参照にする
|
||||
- ビジュアル表現は上面矩形の4辺インセット + R
|
||||
- プロファイル内の距離はすべて mm
|
||||
|
||||
phase1-json-schema.md には最初からファイル単位の器(version/metadata/profiles/root)と profile 定義があり、
|
||||
PHYレイヤー.md の保存形式だけが `const root: Node[] = []` のまま取り残されていた。今回は実質その追認。
|
||||
ただし visualOffset の形だけはスキーマ側も書き換えた。
|
||||
|
||||
## 案の比較
|
||||
|
||||
### ビジュアル表現の形
|
||||
|
||||
| 案 | 内容 | 採否 |
|
||||
| --- | --- | --- |
|
||||
| 4辺インセット + R | top/right/bottom/left/radius | 採用。非対称な上面を表せる |
|
||||
| 位置 + サイズ差 | x, y, dw, dh, radius | 不採用。表現力は同じだが、非対称のとき値の読み取りが直感的でない |
|
||||
| スキーマ現状のまま | x, y, radius | 不採用。本文が言う「オフセット距離」に当たる項目がなく、上面のサイズが決まらない |
|
||||
|
||||
kbd-editor の stores/displayConfig.ts が top{l,r,t,b} + cornerRadius で、4辺独立と同じ形だった
|
||||
(過去の kbd-editor 調査による。概念の参考は可としている)。
|
||||
|
||||
### 単位
|
||||
|
||||
| 案 | 採否 |
|
||||
| --- | --- |
|
||||
| すべて mm | 採用 |
|
||||
| unitSize は mm、オフセットと R は U | 不採用 |
|
||||
| 値ごとに mm/U を指定 | 不採用 |
|
||||
|
||||
元の本文は「オフセット距離(mm or U単位)・R(U単位)」と単位が混在していた。
|
||||
プロファイルは実寸を規定する定義なので、中で U 換算を持つと unitSize への依存が入る。
|
||||
|
||||
### 参照方法
|
||||
|
||||
| 案 | 採否 |
|
||||
| --- | --- |
|
||||
| ID 参照 | 採用。スキーマが既にこの形。定義の複製が起きない |
|
||||
| Key が Profile 実体を持つ | 不採用 |
|
||||
|
||||
座標モデルを決めたときに「今回の決定の範囲外」として実体のまま残されていた項目。
|
||||
今回で決着。
|
||||
|
||||
## 今回触っていないもの
|
||||
|
||||
ファイル単位のデータとして他に候補が出ていたが、置き場の決定は保留:
|
||||
|
||||
- KLE の switchMount / switchBrand / switchType、backcolor / radii / background / css → P-6 待ち
|
||||
- KLE 出力時の rx, ry の選び方、行のまとまり → P-1。ファイルではなく出力設定の単位
|
||||
|
||||
implementation-plan.md の 60% ANSI サンプルは keys/position/size.width という古い平坦な形のままで、
|
||||
今回の保存形式と合っていない。プロファイル部分だけは unitSize のみなので矛盾しない。別タスク。
|
||||
Reference in New Issue
Block a user