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:
2026-09-21 18:58:38 +09:00
co-authored by Claude Opus 5
parent a175ee3c53
commit 69d9c73fff
3 changed files with 100 additions and 8 deletions
+8 -3
View File
@@ -86,6 +86,7 @@ ELC・IDX・MAPはどれもPHYを参照する。ELCはIDXを参照せず、MAP
"name": { "type": "string" },
"unitSize": {
"type": "object",
"description": "Millimeters per 1U",
"required": ["x", "y"],
"properties": {
"x": { "type": "number", "minimum": 0 },
@@ -94,9 +95,13 @@ ELC・IDX・MAPはどれもPHYを参照する。ELCはIDXを参照せず、MAP
},
"visualOffset": {
"type": "object",
"description": "Key top rectangle, in millimeters: inward distance from each edge of the outline, plus corner radius",
"required": ["top", "right", "bottom", "left", "radius"],
"properties": {
"x": { "type": "number" },
"y": { "type": "number" },
"top": { "type": "number" },
"right": { "type": "number" },
"bottom": { "type": "number" },
"left": { "type": "number" },
"radius": { "type": "number", "minimum": 0 }
}
}
@@ -283,7 +288,7 @@ ELC・IDX・MAPはどれもPHYを参照する。ELCはIDXを参照せず、MAP
"id": "standard",
"name": "Standard Cherry MX",
"unitSize": { "x": 19.05, "y": 19.05 },
"visualOffset": { "x": 1, "y": 1, "radius": 1 }
"visualOffset": { "top": 3, "right": 3, "bottom": 3, "left": 3, "radius": 1 }
}
],
"root": [