docs: define operation IDL and entry discovery

This commit is contained in:
2026-09-08 12:11:52 +09:00
parent 138fda8ea6
commit 1520852238
9 changed files with 435 additions and 45 deletions
+8 -2
View File
@@ -38,6 +38,8 @@ ClientとHostの境界は通信境界であると同時に、ある主体へど
- `fetch_tree(entry, depth, limit)` — 指定エントリを起点に、indexableな子エントリを幅優先探索してエントリツリーとして取得する。
- `call_operation(target, operation, input)` — Objectが公開するOperationを実行する。
Operationのinterfaceは[WIP IDL](draft/wip-idl.md)で定義する。`call_operation``input`はOperationが宣言したinput recordに従う名前付きの型付き値であり、引数がない場合も空のrecordを渡す。Core Protocolはこの値をJSONに限定せず、transport bindingが具体的なencodingを定める。
## 3.4 `fetch_tree`
`fetch_tree`は、Clientが機械的探索のために多数の`fetch`を連打することを避けるための操作である。
@@ -50,9 +52,13 @@ ClientとHostの境界は通信境界であると同時に、ある主体へど
## 3.5 Operation実行と発見
`call_operation`の結果は単なる値に限らない。新しいエントリ、エントリツリー、Linkなどを返し得る。
`call_operation`の結果はOperationのWIP IDL output型に従う型付き値である。Output schema上で`entry`として宣言された位置には、同じWorldspace内のエントリを指すcanonical absolute pathを返せる。
ClientはOperation結果として発見したエントリを既知の空間へ統合し、そこからさらにWorldspaceを探索できる
Clientはoutput schemaに従って`entry`型の位置を認識する。通常の`string`や任意JSONに含まれるpathらしい文字列を、エントリとして推測してはならない
返されたエントリpathのTree上の位置はOperationの実行対象から独立しており、実行対象の子に限定されない。Operationの実行対象と返されたエントリの間に、暗黙の親子関係や意味的関係を作ってはならない。
ClientはOperation結果として発見したpathを一時的に扱い、必要なものを`fetch`または`fetch_tree`して既知の空間へ統合できる。複数pathに対する`fetch`は意味上それぞれ独立しており、Transport Bindingは同じ意味を保ったまま一つのrequestへbatchしてよい。
## 3.6 Transportとの分離