Skip to content

Intents

Kevin Pearson edited this page May 3, 2023 · 1 revision

title: Intents

Intents


Version Intents 0.0.0-unknown.0

Table of Contents

Overview

undefined

Types

NavigationIntent

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

type NavigationIntent = HomeIntent | LaunchIntent | EntityIntent | PlaybackIntent | SearchIntent | SectionIntent | TuneIntent

See also:

HomeIntent LaunchIntent EntityIntent PlaybackIntent SearchIntent SectionIntent TuneIntent


HomeIntent

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.

type HomeIntent = {
  action: "home"
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

LaunchIntent

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

type LaunchIntent = {
  action: "launch"
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

EntityIntent

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.

type EntityIntent = {
  action: "entity"
  data: MovieEntity | TVEpisodeEntity | TVSeriesEntity | TVSeasonEntity | AdditionalEntity | UntypedEntity
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

See also:

MovieEntity TVEpisodeEntity TVSeriesEntity TVSeasonEntity AdditionalEntity UntypedEntity


PlaybackIntent

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.

type PlaybackIntent = {
  action: "playback"
  data: MovieEntity | TVEpisodeEntity | AdditionalEntity
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

See also:

MovieEntity TVEpisodeEntity AdditionalEntity


SearchIntent

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.

type SearchIntent = {
  action: "search"
  data?: {
    query: string
  }
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

SectionIntent

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.

type SectionIntent = {
  action: "section"
  data?: {
    sectionName: string
  }
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

TuneIntent

A Firebolt compliant representation of a user intention to 'tune' to a traditional over-the-air broadcast, or an OTT Stream from an OTT or vMVPD App.

type TuneIntent = {
  action: "tune"
  data: {
    entity: ChannelEntity
    options?: {
      assetId?: string                                           // The ID of a specific 'listing', as scoped by the target App's ID-space, which the App should begin playback from.
      restartCurrentProgram?: boolean                            // Denotes that the App should start playback at the most recent program boundary, rather than 'live.'
      time?: string                                              // ISO 8601 Date/Time where the App should begin playback from.
    }
  }
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

See also:

ChannelEntity


Intent

A Firebolt compliant representation of a user intention.

type Intent = {
  action: string
  context: {
    source: 'voice' | 'channel-lineup' | 'editorial' | 'device'
  }
}

IntentProperties

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

MovieEntity

type MovieEntity = {
  entityType: "program"
  programType: "movie"
  entityId: string
  assetId?: string
  appContentData?: string
}

See also:

ProgramEntity


TVEpisodeEntity

type TVEpisodeEntity = {
  entityType: "program"
  programType: "episode"
  entityId: string
  seriesId: string
  seasonId: string
  assetId?: string
  appContentData?: string
}

See also:

ProgramEntity


TVSeriesEntity

type TVSeriesEntity = {
  entityType: "program"
  programType: "series"
  entityId: string
  assetId?: string
  appContentData?: string
}

See also:

ProgramEntity


TVSeasonEntity

A Firebolt compliant representation of a TV Season entity.

type TVSeasonEntity = {
  entityType: "program"
  programType: "season"
  entityId: string
  seriesId: string
  assetId?: string
  appContentData?: string
}

See also:

ProgramEntity


AdditionalEntity

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

See also:

ProgramEntity


UntypedEntity

type UntypedEntity = {
  entityId: string
  assetId?: string
  appContentData?: string
}

ChannelEntity

type ChannelEntity = {
  entityType: "channel"
  channelType: 'streaming' | 'overTheAir'
  entityId: string                         // ID of the channel, in the target App's scope.
  appContentData?: string
}

ProgramEntity

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

See also:

'movie' | 'episode' | 'season' | 'series' | 'other' | 'preview' | 'extra' | 'concert' | 'sportingEvent' | 'advertisement' | 'musicVideo' | 'minisode'


Identifier

type Identifier = string