anchor.diff:  %% api
   %% -------------------------------------------------------------------
   
  +-type(workers_option() :: {'workers', non_neg_integer()}).
  +-type(start_option() :: workers_option()).
  +-type(start_options() :: [start_option()] | 'supervisor_start').
  +
  +%% @doc Starts the entity channel master server.
  +-spec(start_link/1 :: (Options :: start_options()) -> {'ok', pid()}).
   start_link(Options) ->
   	gen_server:start_link({local, ?MODULE}, ?MODULE, Options, []).
   
   %% -------------------------------------------------------------------
   
  +%% @hidden
   client_request(Client, Id, Request, Pid) ->
   	gen_server:cast(Pid, {client_request, Client, Id, Request}),
   	ok.
   
  +%% @hidden
   client_response(_Client, _Id, _Response, _Pid) ->
   	%gen_server:cast(Pid, {client_response, Client, Id, Response}),
   	ok.
   
  +%% @hidden
   client_event(_Client, _Event, _Pid) ->
   	%gen_server:cast(Pid, {client_event, Client, Event}),
   	ok.
   
   %% -------------------------------------------------------------------
   
  +%% @doc Connect to a given client.
   client_connect_hook(undefined, _ClientPid) ->
   	gen_server:cast(?MODULE, client_connected).
   
  +%% @doc Disconnect from a given client.
   client_disconnect_hook(undefined, _ClientPid) ->
   	gen_server:cast(?MODULE, client_disconnected).
   
  
positive.code: %% gen_server
  %% -------------------------------------------------------------------
  
  init(supervisor_start) ->
  	ChildSpec = {
  		?MODULE,
  
negative.code: 
  % gen_server
  -export([start_link/1]).
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
  	code_change/3]).
  % pre_client_channels
  -export([client_request/4, client_response/4, client_event/3]).
  
  