Host dynamic tool declaration.
@type t() :: %ASM.HostTool.Spec{ description: String.t() | nil, input_schema: map(), metadata: map(), name: String.t(), output_schema: map() | nil }
@spec new(keyword() | map() | t()) :: {:ok, t()} | {:error, term()}
@spec new!(keyword() | map() | t()) :: t()
@spec normalize_list([keyword() | map() | t()] | nil) :: {:ok, [t()]} | {:error, term()}
@spec to_dynamic_tool(t()) :: map()