Sessions

A container for a Stage to be performed on or edited by networked collaborators.

A session holds a loaded instance of a Stage and may be networked. Fundamentally, a session exists to provide access to a Stage.

A session can contain many trees that serve different purposes. One specific tree that the session holds is the Stage, which is the primary tree you interact with.

The Master

The master of a session is the user that serves as the source of truth for network events and replication order. All reliable packets are sent through the master and redistributed to other users.

Users may establish direct connections with eachother for unreliable data streams. This is useful for decreasing latency as much as possible to make acting with someone more natural/realtime.

In the event that the master is lost, perhaps due to a crash, a user is chosen to assume the role of master.