Behavior for plugin command handling.
Handles a command for a plugin.
Lists available commands for a plugin.
@callback handle_command(command :: term(), plugin_state :: term()) :: {:ok, term()} | {:error, term()}
@callback list_commands(plugin_state :: term()) :: [String.t()]