Check if a free function can be auto-delegated to the core crate.
Opaque Named params are allowed (unwrapped via Arc). Non-opaque Named params are not
(require From impls that may not exist for types with sanitized fields).
Generate constructor parameter and assignment lists for types with has_default.
All fields become Option with None defaults for optional fields,
or unwrap_or_else with actual defaults for required fields.
Build a constructor parameter list string.
Returns (param_list, signature_with_defaults, field_assignments).
If param_list exceeds 100 chars, uses multiline format with trailing commas.
A type is delegatable if it can cross the binding boundary without From impls.
Named types are NOT delegatable as function params (may lack From impls).
For opaque methods, Named types are handled separately via Arc wrap/unwrap.
Returns true if this parameter is required but must be promoted to optional
because it follows an optional parameter in the list.
PyO3 requires that required params come before all optional params.