# 未確定事項 今後決める必要がある事項を管理する。 実装または仕様方針が固まった項目は、該当する仕様ファイルへ反映してここから外す。 ## Materialize target and host projection Decodal の評価結果は、制約・default・関数値を含む中間値になり得る。 そのため、Decodal 単独で常に「最終成果物」を一意に決めるのではなく、host 側が期待する型や出力形式を与えて materialize / decode する経路を明確にする必要がある。 決めること: - Rust API で評価結果の field/path を選択して decode / materialize できるようにするか。 - `decodal-derive` の struct schema と評価結果を合成して decode する経路を、主要な materialize path として位置づけるか。 - CLI / WASM では target path を指定して JSON-compatible value へ materialize する形にするか。 - 制約や関数値が残った値を出力したい場合、materialize ではなく inspect/debug API として分けるか。 現時点の案: - Rust では `evaluate -> select field/path -> expected schema と合成 -> decode` を主経路にする。 - CLI / WASM では、明示された target path または module 全体を JSON-compatible value として materialize する。 - materialize できない unresolved abstract value、default のない制約値、関数値は diagnostic にする。 - Decodal 言語内には materialize 構文を追加せず、host API / CLI / WASM の責務として扱う。