## contains((31.mdk_protocol.contains.values, 31.mdk_protocol.contains.value))

Returns whether a list contains a given value.


## Serializable

JSON serializable object.

If it has have a String field called _json_type, that will be set as the
'type' field in serialized JSON.



## LamportClock

A Lamport Clock is a logical structure meant to allow partial causal ordering. Ours is a list of
integers such that adding an integer implies adding a new level to the causality tree.

Within a level, time is indicated by incrementing the clock, so

[1,2,3] comes before [1,2,4] which comes before [1,2,5]

Adding an element to the clock implies causality, so [1,2,4,1-N] is _by definition_ a sequence that was
_caused by_ the sequence of [1,2,1-3].

Note that LamportClock is lowish-level support. SharedContext puts some more structure around this, too.



## OperationalEnvironment

An isolated environment with a name, and optionally a fallback environment.

By default the environment will be 'sandbox'.



## SharedContext

## Open

A message sent whenever a new connection is opened, by both sides.


## ProtocolError

A value class for sending error informationto a remote peer.


## Close

Close the event stream.


## Pump

Sent to a subscriber every once in a while, to tell subscribers they can send data.


## WSConnected

Sent to a subscriber when connection happens.


## DecodedMessage

Sent to a subscriber when a message is received.


## WSClientSubscriber

Higher-level interface for subscribers, to be utilized with _subscriberDispatch.


## _subscriberDispatch((31.mdk_protocol._subscriberDispatch.subscriber, 31.mdk_protocol._subscriberDispatch.message))

Dispatch actor messages to a WSClientSubscriber.

Call this in onMessage to handle DecodedMessage, WSConnected and Pump messages
from the WSClient.



## OpenCloseSubscriber

Handle Open and Close messages.


## JSONParser

Convert JSON-encoded strings into objects.


## WSClient

Common protocol machinery for web socket based protocol clients.


## AckablePayload

The payload for an ackable event.


## AckableEvent

An event that can be acknowledged.


## SendAckableEvent

Send a message to the other side.


## WSSend

Send using a WebSocket actor.


## SendWithAcks

Utility class for sending messages with a protocol that sends back acks.


