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: 	pre_entity_engine:client_event(EntityEngine, EntityID, Channel, EventType, Event).
  
  %% --------------------------------------------------------------------------------------------------------------------
  
  %% @doc Broadcasts an event to all clients.
  %%
  %% This broadcasts an event to every client.
  -spec broadcast_event(EventType::binary(), EntityID::binary(), EventContents::json()) ->
  	ok.
  
  broadcast_event(EventType, EntityID, EventContents) ->
  	pre_channel_entity_sup:broadcast_event(EventType, EntityID, EventContents).
  
  %% --------------------------------------------------------------------------------------------------------------------
  
  %% @doc Broadcasts a delta update to all clients.
  %%
  %% This broadcasts a partial state update to all connected clients..
  -spec broadcast_update(EntityID::binary(), PartialState::json()) ->
  	ok.
  
  broadcast_update(EntityID, PartialState) ->
  	pre_channel_entity_sup:broadcast_update(EntityID, PartialState).
  
  %% --------------------------------------------------------------------------------------------------------------------
  %% @doc Broadcasts an event to all entities.
  %%
  %% This broadcasts an event to every entity.
  -spec broadcast_full_update(Entity::#entity{}) ->
  	ok.
  
  broadcast_full_update(Entity) ->
  	pre_channel_entity_sup:broadcast_event(Entity).
  
  %% --------------------------------------------------------------------------------------------------------------------
  
  
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,
  