Behaviour and DSL helpers for council members.
Member modules typically use CouncilEx.Member and configure themselves
via role/1 and system_prompt/1. They may override transform_input/2,
output_schema/0, or validate/1.
Summary
Functions
Declare an optional output schema module.
Declare the member's role string.
Declare the member's static system prompt.
Callbacks
@callback output_schema() :: module() | nil
@callback role() :: String.t()
@callback transform_input(input :: map(), context :: CouncilEx.Context.t()) :: map()