Side behaviour for decoding JSON-RPC messages into typed structs.
Each side (client or agent) knows how to decode incoming requests and notifications.
Summary
Callbacks
@callback decode_notification(method :: String.t(), params :: map() | nil) :: {:ok, any()} | {:error, ACP.Error.t()}
@callback decode_request(method :: String.t(), params :: map() | nil) :: {:ok, any()} | {:error, ACP.Error.t()}