Intents (core)

    Intents (core)


    Article summary


    title: Intents

    version: 0.5.3
    layout: default
    sdk: core

    # Intents Schema

    Version 0.5.3

    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

    NavigationIntent

    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


    Was this article helpful?

    What's Next