Build call argument expressions using pre-bound let bindings for non-opaque Named params.
Non-opaque Named params use &{name}_core references instead of .into().
Generate a lossy binding→core struct literal for non-opaque delegation.
Sanitized fields use Default::default(), non-sanitized fields are cloned and converted.
Fields are accessed via self. (behind &self), so all non-Copy types need .clone().
Generate serde-based let bindings for non-opaque Named params.
Serializes binding types to JSON and deserializes to core types.
Used when From impls don’t exist (e.g., types with sanitized fields).
indent is the whitespace prefix for each generated line (e.g., “ “ for functions, “ “ for methods).
Check if a param type is safe for non-opaque delegation (no complex conversions needed).
Vec and Map params can cause type mismatches (e.g. Vec vs &&str).