Librecast Studio (DRAFT)

Last updated: 2025-02-19

This Document

This is a design document for software that is still in the design and development stages. The present tense is used throughout to indicate features and ideas, regardless of whether they have yet been implemented, with the intent of encouraging the reader to imagine the world in which this software already exists. We already know where we are. This document describes where we want to go next.

This document follows on from the Librecast 2025 Strategic Plan.

Scope

The scope of this document is to:

  • explain why Librecast Studio is needed
  • explain what Librecast Studio is, to a non-technical audience
  • explain the high-level concepts behind Librecast Studio
  • outline the principles driving the design and development of Librecast Studio

Out of scope:

  • technical implementation details, protocols etc.

Overview

As a human being, I want universal group communication which is resistant to interception, interference and netblocks, so that together with other humans I can be informed, organize, promote and enjoy our rights, and to hold accountable those that would violate our rights, and to participate in the life of the community.

Librecast Studio is a group communication and collaboration platform, allowing groups of people to organize, work, play, and participate in communities for any purpose.

Such participation is both guaranteed by, and required for the protection and promotion of, our human rights as documented in the UDHR and other similar human rights declarations, such as the Charter of Fundamental Rights of the European Union (CFR).

Librecast Studio provides a platform and tools for multimedia streaming and recording, meetings, document sharing and editing, presentations, and other collaborative spaces.

Like a community hall or theatre it can be configured and used for many purposes. An Application Programming Interface (API) allows for customization and developing additional tools and plugins.

Librecast Studio builds on the multicast and network libraries developed by Librecast as part of the Next Generation Internet (NGI) programme.

Diagnosis

The Covid-19 Pandemic started a huge shift towards remote working. Conferences have gone virtual, and many classrooms are held online.

This has been achieved by re-purposing software that was never designed for this kind of usage. The available tools all have problems with scaling, user experience and accessibility. Conferences and other events are run using a bunch of different tools hastily glued together. This is a lot of work to set up and support for those running the events, and provides a poor user experience for participants, speakers, students and teachers.

There is no single remote working, conferencing or classroom solution that:

  • is easy to set up and run
  • scales well
  • provides a good user experience for all participants
  • is flexible enough to cope with all the different use cases
  • is designed to be used in an “always on” way
  • respects the privacy of the partcipants
  • is secure by default and by design
  • is open source

There is a strong indication that many workers will continue to work from home. Many in-person conferences continue to have an online component and there are many environmental and economic benefits to encouraging continued remote attendance rather than travelling to the workplace and events.

Design Principles

Everyone has the right to freedom of expression. This right shall include freedom to hold opinions and to receive and impart information and ideas without interference by public authority and regardless of frontiers - Article 11, Charter of Fundamental Rights of the European Union.

There are some principles we wish to adhere to from the outset, to ensure the software stays in alignment with our Values.

Throughout the remainder of this document we will use terms from IETF RFC 2119 to indicate requirement levels. See Appendix I.

Designing for Human Rights Values brings with it a number of implicit requirements, including accessibility, privacy, data protection and protection from degrading treatment.

Accessible

As well as paying attention to conventional accessibility principles in interface design, such as allowing for (and testing with) screen readers, there are some specific principles that apply. By putting the receiver in control of the types of media they subscribe to, and applying the principle of Late Composition (see below), users receive precisely the data they require and consume it in the manner they choose.

Adaptive

Events often have to shape themselves around the available tools. We are taking the reverse approach. We are starting with the people (actors) and the screens etc. (interfaces) they need to perform their tasks, and using that information to drive the system design and development. Our system is adaptive, flexible, modular and extensible.

Users only receive the data they consent to receive by subscribing, and that consent can be revoked at any time by unsubscribing. Additionally, each user has the ability to mute (stop receiving from) and block (stop sending to) other users.

Senders can control which data they send to which groups. Senders can create restricted groups for which they can control membership and read / write permissions. The receiver is always in control of curating their inputs and outputs.

Group owners can delegate operator rights to other users.

Late Composition

Late Composition refers to keeping data in raw forms and delaying the final rendering until required. This is the difference between ordering a cooked pizza delivered to your door, vs having all the ingredients arrive so that you can make it yourself. The former is convenient, for some, but only the latter allows full control over how the final dish is made. You can’t unbake a pizza, and if you don’t like anchovies, picking them off a baked pizza doesn’t completely get rid of the taste. Similarly it is difficult to take something like a video of a presenter’s slides and turn them back into the original text so that you can display them in your own choice of fonts, colours and sizes. Late Composition leaves rendering decisions like these until display time, so that viewers of a live stream, as well as those that watch the recording later, have control over what is displayed and how.

Data comes in three forms: raw, cooked and alternate.

Raw data is data, such as text, that we are able to control the final rendering of. We refer to Cooked data when it has been prepared for display and some of the rendering decisions have already been fixed. When speaking here of display and rendering, we are talking about all forms of media, including non-visual forms such as audio.

A third type of data, Alternate, is different data that represents the same content. This may be an audio description of a video, a transcription of audio, or a translation.

There are some cases, such as when the receiver is a low-power device AND the preferences are already known, that we may wish to deliver pre-cooked data, rather than raw. This MUST NOT be the default.

Related data channels can be grouped into multi-channel Datasets.

Some types of cooked data, such as audio and video, can use layered codecs for quality streams, giving the receiver control to choose which layers to receive depending on their available bandwidth and quality requirements.

Existing systems often use cooked data types as their primary or only data (eg. a YouTube video), at which point all we can really do is add alternate data such as transcripts and subtitles to aid portability.

Moderation

Moderation tools are, sadly, a requirement on today’s Internet. Self-moderation is available in all modes (the ability to mute and block). In addition, for some modes which have 3rd party operators (such as conferences), tools for reporting abuse and moderation screens are supported.

Muting is the ability for a user to stop receiving data from another user. Blocking is the ability to prevent another user from receiving data.

An optional feature we are exploring is the ability to subscribe to 3rd-party moderation feeds from other trusted users.

No Means No

The User MUST be in control of their software at all times.

This may seem obvious, but it is the opposite of how most commercial (and some Open Source) software works. Updates are forced on users without their consent, often making interface changes as well as applying supposedly essential security patches. New and undesirable features are often turned on by default, sometimes without user knowledge, let alone consent. Don’t do that.

The software MUST NOT nag the user, or force them to choose between perverse options like “Yes” and “Remind Me Later”.

Decentralized

Centralized designs SHOULD be avoided.

Efficient

Greta Thunberg is watching. Every compute cycle and byte we waste kills a penguin. There are financial savings too, obviously, but our units of measurement are penguins and polar bears.

Minimizing data transfer sizes allows users on low bandwidth connections to participate.

Minimizing performance requirements means that older hardware may be kept in service longer.

Internationalized

Article 21 (Non-discrimination) and Article 22 (Cultural, religious and linguistic diversity) of the Charter of Fundamental Rights both speak of respecting linguistic diversity.

We will build with internationalization and localization in mind, supporting multiple character sets and text directions and actively seek translations and feedback from persons with diverse cultural backgrounds.

Offline First

An Internet connection and/or the presence of other active nodes should only be required where actually necessary. In general, all operations SHOULD be possible unless there is a specific technical reason why it cannot be done, or if it would be confusing or otherwise problematic.

Private

Users are anonymous by default, identify how and when they choose and can have multiple identities.

Secure

Secure by default and by design.

Use Cases

Just as there are many possible uses for a community hall, there are a huge number of different use-cases for Librecast Studio, including many we haven’t thought of.

These use cases have overlapping subsets of required functionality. Some of these will be supported by a dedicated mode. A mode is a way of presenting functionality in a way that is optimized for a particular use case. Often different tasks which require the same functionality can be better served by different screen layouts and default settings.

Here we examine some of the possibilities to better understand how Librecast Studio might be used, and which features and modes can support these types of usage.

Conference

Conferences come in various shapes and sizes. In some cases Librecast Studio will be able to host the entire event. In others, Librecast Studio can add value in some way.

Conferences go through a lifecycle of several stages:

  • Creation / Launch
  • CFP
  • Announcements
  • Mailing List
  • Sign Up
  • Ticket Sales
  • CFP Review
  • Speaker Acceptance
  • Schedule / Timetable
  • Sponsors
  • Schedule Updates
  • Conference Opening
  • Conference
  • Conference Closing
  • Accouncing Next Conference
  • Particpant Survey
  • Organiser Team Postmortem
  • Post-Conference Content Release

Online Conference

An online conference with no offline components can be fully hosted in Librecast Studio without additional software. This is a design requirement.

Physical Conference

A physical (offline) conference can be enhanced in several ways. Librecast Studio can provide an accessible version of presentation slides for viewing on devices by local audience members. If slides are prepared using Librecast Studio’s slide format, these can be shared live over the local network, allowing audience members to view slides in their own choice of font, colour, size and language preferences. Alternative text can be displayed in place of images, if desired, and screen readers, braille devices and other devices can be used with the content. Alternate data (see glossary) can be loaded instead, such as audio tracks or transcripts.

Hybrid Conferences

Hybrid conferences comprise both online and offline parts. The online part of a hybrid conference can be run in Librecast Studio, with the offline part enhanced as for a Physical Conference. Librecast Studio provides features to unite the two halves of the conference, allowing participants at the physical conference to interact with those attending virtually, and giving virtual attendees the opportunity to feel part of the event.

Attendees at conferences often have one or more network devices with them, such as laptops and mobile phones, which can be used to interact with local sessions, and participants both virtual and physical. Additionally, a venue could have a number of kiosks scattered throughout the event specifically for event interactions, participation in polls and other related activities. Carefully placed (and signposted) cameras, microphones and screens at a physical event could encourage interaction between virtual and physical participants.

Federated Multi-site Conference/Event

Physical conferences may be spread across multiple geographical locations. Librecast Studio allows for the federation of these events. Participants at one location can join in sessions hosted at other sites, and online (virtual) participants can seamlessly participate at all sites.

Multi Conference

At any given time there may be multiple conferences and other events happening. When building interfaces we need to take account of users wanting to participate in more than one event at the same time. A participant may be physically attending one conference, and speaking at another. Librecast Studio interfaces allow for these overlapping events.

Cultural

Everyone has the right freely to participate in the cultural life of the community, to enjoy the arts and to share in scientific advancement and its benefits. Article 27, Universal Declaration of Human Rights (UDHR)

So much of technology focuses only on what is useful in business settings, but life is about much more than that. During the Covid19 lockdowns early in the Pandemic, people turned to online tools to connect and communicate. These tools were not built for these uses, and we had to adapt our behaviour to fit the tools. We can do so much more with tools that are explicitly built to support our needs. Librecast Studio explicitly supports these use-cases.

Bookclub

“As you read a book word by word and page by page, you participate in its creation, just as a cellist playing a Bach suite participates, note by note, in the creation, the coming-to-be, the existence, of the music. And, as you read and re-read, the book of course participates in the creation of you, your thoughts and feelings, the size and temper of your soul.” – Ursula K. Le Guin

A bookclub is usually a small group of people meeting to discuss a book that they have recently read. Live Video, Audio and Chat features are obviously desirable. The ability to share an ebook among readers, and the ability to make and share margin notes may also be useful.

Debate / Panel Quiz

This could happen in a number of formats, such as a moderated head to head debate between two speakers, or two teams of three speakers, each with a set number of minutes to make their arguments. The same mode would also support a panel quiz similar to Have I Got News for You.

DJ

The DJ plays pre-recorded music for listeners, with optional video or generated imagery. The ability to mix different tracks and voiceover live using a mixing desk is required.

Family Event

A federated family (or other group) event, such as a holiday meal, split across multiple locations. With cameras and microphones, and screen(s) showing the other locations. A screen and camera could be set up at one end of the table to give the impression of a longer shared table.

Multimedia Art Installation

Multimedia (possibly interactive) space for an art installation. The form is entirely up to the artist, but could combine visual, auditory and interactive components, possibly split across several physical locations, or be entirely virtual. Can be live or pre-recorded.

Orchestra / Live Music Session

The Pandemic lockdowns saw a number of these type of events. The musicians may be in one location, or spread across different locations. The challenge here is managing the delay between musicians. In cases where the delay is high, it may be desirable to pre-record some of the tracks, and have only one location play live. This needs some thought and experimentation to get a quality result.

Rally

Online protest / demonstration. Enable those housebound or otherwise unable to physically get to a physical protest to join in and show their support. An online petition can be effective. An online protest can be made effective with appropriate media coverage and participation.

Recording Studio - multi-track

Multi-track audio (and possibly video) recording, mixing and replay.

Tabletop Gaming Session

Multiple players, with audio, video and possibly other inputs. For board games, one location may share a camera feed pointed at the board.

Watch Party

Also known as Social Viewing, online Watch Parties are popular, with people all watching the same live or pre-recorded show at the same time, and sharing live chat messages.

Learning

Teaching and group learning sessions are an important use case for Librecast Studio to support. These come in many different forms.

Lecture

A typical large lecture scenario with one speaker, a whiteboard and/or slides and a larger audience. Typically student/audience participation is limited, but the ability to signal the lecturer and ask or answer questions is common.

Small classroom / Tutorial / Workshop

Smaller classrooms, tutorials and workshops tend to involve more student interaction. In this scenario, there may be more multi-user whiteboard use, document editing and shared terminal use, compared a Lecture.

Meeting

Client Meeting / Demo

A meeting with a client to discuss work specifications and/or demonstrate work already undertaken and receive feedback. May involve a website or software demonstration, or the presentation of a document or other media.

Collaborative Document Editing

Multiple parties working simultaneously on the same document. May require various other live media (video, audio, chat) or screen sharing in addition the document being edited.

Meeting / Multi-party Discussion

A general purpose audiovisual meeting between multiple parties.

Shared Design Session

Two or more participants working together in any media.

Messaging

In addition to live chat, asynchronous messaging is also supported, allowing users to exchange messages, audio, video and other documents even when other parties are offline. When the receiver(s) next connect, they will be able to retrieve their messages, similar to email (but end to end encrypted).

Technical

Pair Programming

Two (or more) programmers sharing terminal(s) as the main focus, usually with audio or text chat and possibly other media.

Standup Meeting (Agile)

Multi-party meeting, usually requiring video, audio and whiteboards, kanbans or other issue and project tracking tools.

Systems Administration (Shared Terminal)

Multi-party shared terminal session for debugging, systems administration etc.

Video/Audio Playback, Browsing Mode

A video/media browsing, searching and viewing interface, similar to YouTube or PeerTube or Vimeo.

Other Scenarios

Calendar / multi-zone bookings

Events happen at dates and times, so it is useful to be able to plan and coordinate these, often across multiple timezones.

Long form publishing (Blog Post)

While many use-cases make use of audiovisual modes, it is possible to also create longer articles, posts and e-zines.

Actors

People interact with events in different ways depending on their role. A person performing a role is referred to as an Actor in this document. Here we define some of the Actors related to the conference modes.

Different Actors have view the same content differently, with different screen layouts and defaults depending on the Mode (see Modes).

Speaker

Speaker / Presenter / Workshop Coordinator. One of the “on-stage” speakers in a multi-member panel session.

Attendee

A participant in the event that does not have any other special role.

Moderator / Panel Moderator

Moderation team. The “on-stage” co-ordinator / interviewer for panel sessions.

Organizer

Organizers / Management Team.

Core organizer with access to set up and run the conference.

Room Manager

A Track / Room Organizer / Co-ordinator.

Sysop/Support

Technical team member - responsible for backend setup and maintainance.

There may be different types of support team required, depending on the size and complexity of an event. For smaller events this may be rolled into one and possibly combined with the Organizer role.

Speaker Support

Speaker Support - green room / room management

User Support

User support person - helping participants and speakers to use the system and diagnose and debug problems.

A/V Support

Audio/Visual support team.

Safety Team

Team who handle CoC Abuse reports and moderation requests.

Reviewer

Call for Papers (CfP) Reviewer. Actor who reviews and scores speaker submissions prior to the conference.

Modes

One of the harder problems to fix with videoconferencing and similar applications pertains to user experience (UX). User Interface (UI) design is often a low priority, with little thought given to how different users want to interact with an event.

Different use cases often require similar functionality, but presented differently and with different defaults. Each of these different setups is called a Mode.

While the backend architecture remains the same, different users (and different events) require very different user interfaces, depending on their role in the event and how they have chosen to participate.

Using a component-based UI design we can mix and match UI elements into different configurations.

One of the milestones provides for drag and drop custom screen layout and the creation of event templates.

Conference Modes

Table showing Conference Modes by Actor
Actor / Mode Lecture Workshop Panel Q&A Green Room Hallway Track CfP
Speaker X X X X X
Attendee X X X X X
Moderator X X
Organizer X X
Room Manager X X X X X
Sysop/Support X X X X X X
Safety X X X X X X
Reviewer X

Lecture Mode

One to many lecture viewing for participants.

Workshop Mode

Multi-participant. Participants are also presenters. Screen sharing.

Panel Mode

Multiple speakers and a moderator form a panel and take Q&A from audience members. We want several presenters on screen at once, along with the active Questioner.

Q&A Mode

Post-presentation question and answer session.

Green Room Mode

Speakers pre-talk room. Pre-presentation testing, chat with moderators and other speakers prior to going live.

Hallway Track / Breakout rooms

The hallway track of a conference is the default breakout room for attendees of the conference. From here, attendees can chat to other attendees, move into topical or private breakout rooms or switch to other conference modes.

Separate group rooms are available for those wishing to have impromptu discussions, meetings, or Birds of a Feather (BoF) gatherings.

Room Manager

Screens for Room Managers to monitor and manage a room.

Organizer Mode

Screens for Organizers to monitor and manage an event.

Support / Sysop Mode

Management, debug and telemetry screens for the sysadmin and technical support teams.

Safety Team / Moderation

Screens for handling CoC Abuse reports and moderation requests.

Other Modes

Pre-recorded Interface Mode

Netflix-style video on demand.

Meeting Mode

Multi-particpant videoconferencing, similar to what you experience with Jitsi. Optional text chat and screen/slide sharing.

Features

Table showing Features by Use Case
Use Case / Feature Video Audio Screenshare Slideview Chat Messaging Recording Playback Text Editing Shared Terminal Whiteboard Calendar Long Form Blog Address Book Post-Production
Multiparty Video Call (n > 1) X X X O
Meeting / Multi-party Discussion X X X X X O O
Online Conference (multi-room) X X X X X X O O O
Hallway track, breakout rooms X X X X O O O
Federated Multi-site Conference/Event X X X X X X O O O
Single Presenter X X X X X O X O
Multiple Presenters X X X X X O X O
Q&A Session X X X X X X O O
Panel Discussion / Q&A X X X X X X O O
Collaborative Document Editing X X X X
Small classroom / Tutorial / Workshop / Blackboard X X X X X X X X X
Lecture X X X X X X X X X
Systems Administration (Shared Terminal) O X X X
Pair Programming O X X X
Standup Meeting (Agile) X X X O O O O X
Key Signing (eg. PGP) X X O X
Multimedia Art Installation X X X X O X O O
Offline Conference X X X X X X X O
Hybrid Conference X X X X X X X O O
Debate X X X
Tabletop Gaming Session X X X X X X
Family Event X X O
Video/Audio Playback, Browsing Mode X X X
Watch Party X X X X
Shared Design Session X X X X X O X O
Client Meeting / Demo X X X X X X X X X X
DJ X X X X
Bookclub X X X X
Orchestra / Live Music Session X X X X
Recording Studio multi-track X X X X O
Offline X X X X X X X X X X X

X : Supported
O : Optional

Core Features

Most use cases are different modes which make use of the following core features:

Live Audio/Video

Live streaming audio and video are the basis of most online events. Together with live chat, this is the entirety of the experience on other platforms.

Our differentiation is in how these features are offered by multicast subscription, our attention to accessibility options, layered quality streams and the composability of modes.

Where other platforms send media, such as slides, as pre-rendered video, we will provide separate options for these, using our Late Composition principle.

Screen Sharing

Sharing windows and screens. This is a fallback option only, where we have no better way to share the data, as this isn’t accessible and doesn’t conform to Late Composition.

Slide Viewer and Editor

Rather than sending slides as pre-rendered video, we send the raw data and let the receiver display slides according to their colour, font and language preferences. The ability to edit slides and build slide decks is part of this feature.

Live Chat

Live text chat on group channels. These chats have an option for logging and synchronized replay with other recorded live streams. This is different from the Messaging feature, as messaging is ad-hoc and supports offline sending.

Messaging

Offline messaging. Like email, these messages can be sent and received while offline, and will be delivered when the receiver is next online.

Messages can be plain text, or include media such as still images, audio and video.

Messages can be set to deliver at set times in the future.

Recording

The ability to record live streams is possible for both the sender and receivers.

Offline recording of video and audio presentations, with slides, screen sharing etc. is also supported.

Recordings are multi-track, so mixing is possible. Slide timings and transitions are stored as events rather than flattening into video.

Playback

Playback and review of previously recorded media, including media from other sources.

Text Editing

Editing of text files is enabled using the default local text editor.

Shared Terminal

Shared terminal sessions over multicast. Similar to screen or tmux, but multicast (of course), and the screen resolution, fonts and colours are set by the receiver.

Whiteboard

Shared drawing board(s) for classrooms and presentations.

Calendar

Sharable multi-timezeone calendar(s) for appointments, bookings, conference programmes etc.

Long Form Articles

Long form articles and blog posts.

Address Book

Create, edit, view and delete group addresses and public keys for contacts and channels. Address books can be personal or sharable.

Post Production / Video Editing / Presentation Composer

Basic post-production of presentations and video export.

  • Editing and cropping video and audio
  • Adding title cards to videos
  • Adding transcripts, subtitles and captions
  • Record voiceover
  • Long form Post drafts

Moderation Panel

Administration panel for reviewing and taking action on CoC violation and abuse reports.

CoC / Abuse Reporting Tool

Submission form and tools for submitting evidence of CoC violations or abuse.

Integration

Integration possibilities with other FOSS systems and protocols that should be investigated:

  • ActivityPub
  • Calendar and Conference apps (eg. Giggity)
  • IRC
  • Matrix
  • XMPP

Other Features

  • A/V control room
  • Admin Interface
  • Archiving - > archive.org etc.
  • Blog posting
  • CFP, CFP Review
  • Calendar / multi-zone bookings
  • Camera controls
  • Commemorative Zine -> mobi or epub
  • Comment / React to Talks etc.
  • Conference Listings (other confs)
  • Drag n drop custom screen builder
  • Ereader for .epub and .mobi etc.
  • Event / Speaker Management
  • File Management
  • Forum / Long reads / discussions
  • Mute / Block lists
  • Post-production (editing, cropping, add title card, subtitles, captions, transcript etc.)
  • Profile management (upload / take pictures)
  • Programme
  • Room / Track Management
  • Schedule Management
  • Shop
  • Speaker Interface (bio, notes, slides, other - eg. demo configs)
  • Sponsor Interface
  • Telemetry
  • Ticket Sales
  • Training / Tutorial Mode - prepare and obtain certification
  • User Interface (bookmarking talks, dance card, random chat-roulette)
  • User Support system (Bug reports, A/V, connection problems)
  • User set preferences
  • Volunteer Pool
  • Votes / Polls

Appendix I: Requirements Levels

The following terms are used to indicate requirement levels based on IETF RFC 2119:

  1. MUST This word, or the terms “REQUIRED” or “SHALL”, mean that the definition is an absolute requirement of the specification.

  2. MUST NOT This phrase, or the phrase “SHALL NOT”, mean that the definition is an absolute prohibition of the specification.

  3. SHOULD This word, or the adjective “RECOMMENDED”, mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

  4. SHOULD NOT This phrase, or the phrase “NOT RECOMMENDED” mean that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.

  5. MAY This word, or the adjective “OPTIONAL”, mean that an item is truly optional. One vendor may choose to include the item because a particular marketplace requires it or because the vendor feels that it enhances the product while another vendor may omit the same item. An implementation which does not include a particular option MUST be prepared to interoperate with another implementation which does include the option, though perhaps with reduced functionality. In the same vein an implementation which does include a particular option MUST be prepared to interoperate with another implementation which does not include the option (except, of course, for the feature the option provides.)

Appendix II: Glossary

Actor
A person using the software in a particular role.
Channel
A channel represents a stream of data delivered to a group of subscribed and authorized users. Data of different types is delivered on different channels, allowing the user to choose which types of data they wish to receive.
Channelset
A group of multiple related channels.
Data, alternate
Different data that represents the same content. This may be an audio description of a video, a transcription of audio, or a translation.
Data, cooked
Cooked data has been prepared for display and some of the rendering decisions have already been fixed.
Data, raw
Raw data is data, such as text, that we are able to control the final rendering of.
Group
One or more receivers of data. See Channel.
Late Composition
See Late Composition
Mode
A mode is a way of presenting functionality in a way that is optimized for a particular use case.