Host contract for resolving and rendering a portable prompt specification.
A resolver returns the rendered text, or a list of content parts where the
host's wire wants structure the text cannot carry — an Anthropic
cache_control breakpoint, say. Baton.Flow.RequestAssembly passes either
through untouched; the parts are the host's own vocabulary, never baton's.
Summary
Types
Callbacks
@callback resolve(prompt_spec :: map(), assigns :: map(), runtime :: map()) :: {:ok, resolved_prompt()} | {:error, term()}