Intents


Table of Contents

Types

Intent

A Firebolt compliant representation of a user intention.

type Intent = {
  action: string
  context: {
    source: string
  }
}

IntentProperties

type IntentProperties = {}

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:
    | ProgramEntity
    | MusicEntity
    | ChannelEntity
    | UntypedEntity
    | PlaylistEntity
  context: {
    source: string
  }
}

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: PlayableEntity
  context: {
    source: string
  }
}

See also:

PlayableEntity


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
    suggestions?:
      | ProgramEntity
      | MusicEntity
      | ChannelEntity
      | UntypedEntity
      | PlaylistEntity[]
  }
  context: {
    source: string
  }
}

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: string
  }
}

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.
    }
    // The options property of the data property MUST have only one of the following fields.
  }
  context: {
    source: string
  }
}

See also:

ChannelEntity


PlayEntityIntent

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 PlayEntityIntent = {
  action: 'play-entity'
  data: {
    entity: PlayableEntity
    options?: {
      playFirstId?: string
      playFirstTrack?: number
    }
  }
  context: {
    source: string
  }
}

See also:

PlayableEntity


PlayQueryIntent

A Firebolt compliant representation of a user intention to navigate an app to a the video player for an abstract query to be searched for and played by the app.

type PlayQueryIntent = {
  action: 'play-query'
  data: {
    query: string
    options?: {
      programTypes?: ProgramType[]
      musicTypes?: MusicType[]
    }
  }
  context: {
    source: string
  }
}

See also:

ProgramType MusicType


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: string
  }
}

LaunchIntent

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

type LaunchIntent = {
  action: 'launch'
  context: {
    source: string
  }
}

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
  | PlayEntityIntent
  | PlayQueryIntent

See also:

HomeIntent LaunchIntent EntityIntent PlaybackIntent SearchIntent SectionIntent TuneIntent PlayEntityIntent PlayQueryIntent