Skip to main content
Version: 0.6.0-alpha.1

Intents Schema


Version 0.6.0-alpha.1

JSON-Schema

This document was generated from a JSON-Schema, and is intended to provide a human readable overview and examples of the methods contained in the module.

For the full schema, see the link below.

Schema
intents.json

Table of Contents

Schemas

AppIntentMessage

type AppIntentMessage = {
type: string
appId: string
intent: NavigationIntent // A Firebolt compliant representation of a user intention to navigate to a specific place in an app.
metadata?: {
}
}
Examples
{
"type": "xrn:firebolt:intent:app:launch",
"appId": "Netflix",
"intent": {
"action": "launch",
"context": {
"source": "voice"
}
},
"metadata": {
"foo": "bar"
}
}

{
"type": "xrn:firebolt:intent:app:entity",
"appId": "Netflix",
"intent": {
"action": "entity",
"data": {
"entityType": "program",
"programType": "movie",
"entityId": "jerry-mcguire"
},
"context": {
"source": "voice"
}
},
"metadata": {
"foo": "bar"
}
}

Details

A message sent to a Firebolt app.


PlatformIntentMessage

type PlatformIntentMessage = {
type: string
intent: ContentDiscoveryIntent | EntityAppSelectionIntent | PauseIntent | SeekIntent | SkipIntent | TrickPlayIntent | ClosedCaptionsIntent | AudioDescriptionIntent | ButtonIntent | PowerIntent | VolumeIntent | MicrophoneIntent | InputIntent | MessageIntent
metadata?: {
}
}
Examples
{
"type": "xrn:firebolt:intent:platform:power",
"intent": {
"action": "power",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
},
"metadata": {
"foo": "bar"
}
}

{
"type": "xrn:firebolt:intent:platform:discovery",
"intent": {
"action": "discovery",
"data": {
"query": "christmas",
"menus": [
"christmas-menu"
],
"federation": [
{
"appId": "netflix",
"exclude": true
}
]
},
"context": {
"source": "voice"
}
}
}

Details

A message sent to the Firebolt platform.


Intent

type Intent = {
action: string
context: {
source: 'voice' | 'editorial' | 'device'
}
}
Examples

Details

A Firebolt compliant representation of a user intention.


IntentProperties

type IntentProperties = {
action: any
data: any
context: any
}
Examples


type NavigationIntent = HomeIntent | LaunchIntent | EntityIntent | PlayerIntent | SearchIntent | SectionIntent
Examples

Details

A Firebolt compliant representation of a user intention to navigate to a specific place in an app.


DiscoveryIntent

type DiscoveryIntent = ContentDiscoveryIntent | EntityAppSelectionIntent
Examples

Details

A Firebolt compliant representation of a user intention to discover something at the aggregate experience level, e.g. content, apps, etc.


DeviceIntent

type DeviceIntent = ButtonIntent | PowerIntent | VolumeIntent | MicrophoneIntent | InputIntent
Examples

Details

A Firebolt compliant representation of a user intention to control some aspect of their device.


PlaybackIntent

type PlaybackIntent = PauseIntent | SeekIntent | SkipIntent | TrickPlayIntent | ClosedCaptionsIntent | AudioDescriptionIntent
Examples

Details

A Firebolt compliant representation of a user intention to control some aspect of in-progress playback.


DialogIntent

type DialogIntent = MessageIntent
Examples

Details

A Firebolt compliant representation of a platform or user intention to converse in a dialog.


LaunchIntent

type LaunchIntent = {
action: "launch"
context: {
source: 'voice' | 'editorial' | 'device'
}
}
Examples
{
"action": "launch",
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to launch an app.


HomeIntent

type HomeIntent = {
action: "home"
context: {
source: 'voice' | 'editorial' | 'device'
}
}
Examples
{
"action": "home",
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to navigate an app to it's home screen, and bring that app to the foreground if needed.


EntityIntent

type EntityIntent = {
action: "entity"
context: {
source: 'voice' | 'editorial' | 'device'
}
data: MovieEntity | TVEpisodeEntity | TVSeriesEntity | TVSeasonEntity | AdditionalEntity | UntypedEntity
}
Examples
{
"action": "entity",
"context": {
"source": "voice"
},
"data": {
"entityType": "program",
"programType": "movie",
"entityId": "el-camino"
}
}

Details

A Firebolt compliant representation of a user intention to navigate an app to a specific entity page, and bring that app to the foreground if needed.


ProgramEntity

type ProgramEntity = {
entityType: "program"
programType: ProgramType // In the case of a program `entityType`, specifies the program type.
entityId: string
}

See also:

Examples


MovieEntity

type MovieEntity = {
entityType: "program"
programType: ProgramType // In the case of a program `entityType`, specifies the program type.
entityId: string
assetId?: string
appContentData?: string
}
Examples
{
"entityType": "program",
"programType": "movie",
"entityId": "el-camino"
}

TVEpisodeEntity

type TVEpisodeEntity = {
entityType: "program"
programType: ProgramType // In the case of a program `entityType`, specifies the program type.
entityId: string
seriesId: string
seasonId: string
assetId?: string
appContentData?: string
}
Examples
{
"entityType": "program",
"programType": "episode",
"entityId": "breaking-bad-pilot",
"seriesId": "breaking-bad",
"seasonId": "breaking-bad-season-1"
}

TVSeasonEntity

type TVSeasonEntity = {
entityType: "program"
programType: ProgramType // In the case of a program `entityType`, specifies the program type.
entityId: string
seriesId: string
assetId?: string
appContentData?: string
}
Examples
{
"entityType": "program",
"programType": "season",
"entityId": "breaking-bad-season-1",
"seriesId": "breaking-bad"
}

Details

A Firebolt compliant representation of a TV Season entity.


TVSeriesEntity

type TVSeriesEntity = {
entityType: "program"
programType: ProgramType // In the case of a program `entityType`, specifies the program type.
entityId: string
assetId?: string
appContentData?: string
}
Examples
{
"entityType": "program",
"programType": "series",
"entityId": "breaking-bad"
}

AdditionalEntity

type AdditionalEntity = {
entityType: "program"
programType: ProgramType // In the case of a program `entityType`, specifies the program type.
entityId: string
assetId?: string
appContentData?: string
}
Examples
{
"entityType": "program",
"programType": "concert",
"entityId": "live-aid"
}

UntypedEntity

type UntypedEntity = {
entityId: string
assetId?: string
appContentData?: string
}
Examples
{
"entityId": "an-entity"
}

PlayerIntent

type PlayerIntent = {
action: "playback"
context: {
source: 'voice' | 'editorial' | 'device'
}
data: MovieEntity | TVEpisodeEntity | AdditionalEntity
}
Examples
{
"action": "playback",
"data": {
"entityType": "program",
"programType": "episode",
"entityId": "breaking-bad-pilot",
"seriesId": "breaking-bad",
"seasonId": "breaking-bad-season-1"
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to navigate an app to a the video player for a specific, playable entity, and bring that app to the foreground if needed.


SearchIntent

type SearchIntent = {
action: "search"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
query: string
}
}
Examples
{
"action": "search",
"data": {
"query": "walter white"
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to navigate an app to it's search UI with a search term populated, and bring that app to the foreground if needed.


SectionIntent

type SectionIntent = {
action: "section"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
sectionName: string
}
}
Examples
{
"action": "section",
"data": {
"sectionName": "settings"
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to navigate an app to a section not covered by home, entity, player, or search, and bring that app to the foreground if needed.


ContentDiscoveryIntent

type ContentDiscoveryIntent = {
action: "discovery"
context: {
source: 'voice' | 'editorial' | 'device'
}
data: {
query: string
menus?: string[]
federation?: object[]
}
}
Examples

Details

A Firebolt compliant representation of a user intention to discover content with out a clear specific entity match.


EntityAppSelectionIntent

type EntityAppSelectionIntent = {
action: "entityAppSelection"
context: {
source: 'voice' | 'editorial' | 'device'
}
data: {
query: string
entity: MovieEntity | TVEpisodeEntity | TVSeriesEntity | TVSeasonEntity | AdditionalEntity
apps: object[]
menus?: string[]
federation?: object[]
}
}
Examples
{
"action": "entityAppSelection",
"context": {
"source": "voice"
},
"data": {
"query": "the departed",
"entity": {
"entityType": "program",
"programType": "movie",
"entityId": "departed-merlin-id"
},
"apps": [
{
"appId": "hbo",
"entity": {
"entityType": "program",
"programType": "movie",
"entityId": "departed-hbo-id"
}
},
{
"appId": "netflix",
"entity": {
"entityType": "program",
"programType": "movie",
"entityId": "departed-netflix-id"
}
}
],
"federation": [
{
"appId": "netflix",
"exclude": true
}
],
"menusIds": [
"123"
]
}
}

Details

A Firebolt compliant representation of a user intention to navigate to a specific entity that could be served by more than one app.


ButtonIntent

type ButtonIntent = {
action: "button"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
operation: 'down' | 'up' | 'prev' | 'next' | 'enter' | 'exit' | 'info' | 'menu' | 'back' | 'cancel' | 'record'
}
}
Examples
{
"action": "button",
"data": {
"operation": "menu"
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing one of the remote buttons.


VolumeIntent

type VolumeIntent = {
action: "volume"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: object | object
}
Examples
{
"action": "volume",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

{
"action": "volume",
"data": {
"value": 0.7
},
"context": {
"source": "voice"
}
}

{
"action": "volume",
"data": {
"value": 0.1,
"relative": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to change the device volume.


PowerIntent

type PowerIntent = {
action: "power"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: boolean
toggle?: true
}
}
Examples
{
"action": "power",
"data": {
"value": false
},
"context": {
"source": "voice"
}
}

{
"action": "power",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to turn their device on or off.


MicrophoneIntent

type MicrophoneIntent = {
action: "microphone"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: boolean
toggle?: true
}
}
Examples
{
"action": "microphone",
"data": {
"value": false
},
"context": {
"source": "voice"
}
}

{
"action": "microphone",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to turn their microphone on or off.


InputIntent

type InputIntent = {
action: "input"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
interface: 'hdmi' | 'rca' | 'vga' | 'etc...'
number?: bigint
}
}
Examples
{
"action": "input",
"data": {
"interface": "hdmi"
},
"context": {
"source": "voice"
}
}

{
"action": "input",
"data": {
"interface": "hdmi",
"number": 1
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to change which video input is active.


PauseIntent

type PauseIntent = {
action: "pause"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: boolean
toggle?: true
}
}
Examples
{
"action": "pause",
"data": {
"value": false
},
"context": {
"source": "voice"
}
}

{
"action": "pause",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to pause/unpause in-progress playback.


PlaybackSpeedIntent

type PlaybackSpeedIntent = {
action: "speed"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: number
toggle?: boolean
}
}
Examples
{
"action": "speed",
"data": {
"value": 2
},
"context": {
"source": "voice"
}
}

{
"action": "speed",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to change the speed of in-progress playback.


TrickPlayIntent

type TrickPlayIntent = {
action: "trickplay"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: true
}
Examples
{
"action": "trickplay",
"data": {
"direction": "forward",
"speed": 2
},
"context": {
"source": "voice"
}
}

{
"action": "trickplay",
"data": {
"direction": "backward",
"speed": 2
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to fast-forward or rewind in-progress playback.


SeekIntent

type SeekIntent = {
action: "seek"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: true
}
Examples
{
"action": "seek",
"data": {
"seconds": 300
},
"context": {
"source": "voice"
}
}

{
"action": "seek",
"data": {
"direction": "forward",
"seconds": 30
},
"context": {
"source": "voice"
}
}

{
"action": "seek",
"data": {
"direction": "backward",
"seconds": 30
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to seek to a different time for in-progress playback.


SkipIntent

type SkipIntent = {
action: "skip"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: true
}
Examples
{
"action": "skip",
"data": {
"direction": "forward",
"count": 1
},
"context": {
"source": "voice"
}
}

{
"action": "skip",
"data": {
"direction": "backward",
"count": 1
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to skip a scene/chapter/ad during in-progress playback.


ClosedCaptionsIntent

type ClosedCaptionsIntent = {
action: "closedcaptions"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: boolean
toggle?: true
}
}
Examples
{
"action": "closedcaptions",
"data": {
"value": false
},
"context": {
"source": "voice"
}
}

{
"action": "closedcaptions",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to enable/disable closed captions.


AudioDescriptionIntent

type AudioDescriptionIntent = {
action: "audiodescriptions"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: boolean
toggle?: true
}
}
Examples
{
"action": "audiodescriptions",
"data": {
"value": false
},
"context": {
"source": "voice"
}
}

{
"action": "audiodescriptions",
"data": {
"toggle": true
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a user intention to enable/disable audio descriptions.


MessageIntent

type MessageIntent = {
action: "message"
context: {
source: 'voice' | 'editorial' | 'device'
}
data?: {
value?: string
}
}
Examples
{
"action": "message",
"data": {
"value": "Here's a message"
},
"context": {
"source": "voice"
}
}

Details

A Firebolt compliant representation of a platform intention to display a message on the device.


Identifier

type Identifier = string
Examples


DirectionalOperation

type DirectionalOperation = {
direction?: 'forward' | 'backward'
}
Examples


BooleanToggle

type BooleanToggle = {
value?: boolean
toggle?: true
}
Examples


IntentMessage

type IntentMessage = {
type: string
}
Examples