anchor.diff:  %%% @doc The entity/client communication interface.
   %%%
   %%% This module is simply an interface from the channel logic to the entity engine and vice versa.
  -%%%
   %%% --------------------------------------------------------------------------------------------------------------------
   
   -module(pre_entity_comm).
  
positive.code: -export([broadcast_event/3, broadcast_update/2, broadcast_full_update/1]).
  
  %% --------------------------------------------------------------------------------------------------------------------
  %% API
  %% --------------------------------------------------------------------------------------------------------------------
  
  %% @doc Passes the client request to the appropriate behavior to be handled.
  %%
  %% This passes a request from the client to the behavior of the entity the client is currently controlling. A response
  %% is always expected.
  -spec client_request(ClientInfo::#client_info{}, Channel::atom(), RequestType::binary(), RequestID::integer(), Request::json()) ->
  	Response::json().
  
  client_request(ClientInfo, Channel, RequestType, RequestID, Request) ->
  	EntityEngine = ClientInfo#client_info.entity_engine,
  
negative.code: 	pre_entity_engine:client_request(EntityEngine, EntityID, Channel, RequestType, RequestID, Request).
  
  %% --------------------------------------------------------------------------------------------------------------------
  %% @doc Passes the client event to the appropriate behavior to be handled.
  %%
  %% This passes an eventvfrom the client to the behavior of the entity the client is currently controlling. No response
  %% is expected.
  
  -spec client_event(ClientInfo, Channel, EventType, Event) -> Response when
  	ClientInfo :: #client_info{},
  	Channel :: atom(),
  	EventType :: binary(),
  	Event :: json(),
  	Response :: json().
  
  client_event(ClientInfo, Channel, EventType, Event) ->
  	EntityEngine = ClientInfo#client_info.entity_engine,
  