    protocol Starter : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/NodeWithOutput.html

Base protocol for all Starters in the automation graph.
- `


  ### [entity](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Starter#/s:13GoogleHomeSDK7StarterP6entityAA0B6Object_pSgvp)


  ` The unique entity for the `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeDevice.html` or `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/Structure.html` entity associated
  with the `Starter`.

  entity will be nil if the implementing class's init(entityExpression: ...)
  was used and the entityExpression is not a `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/Constant.html` to a `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/HomeObject.html`.

  #### Declaration

  Swift

      var entity: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/HomeObject.html)? { get }

- `


  ### [entityExpression](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Starter#/s:13GoogleHomeSDK7StarterP16entityExpressionAA0F0_pvp)


  ` An expression that selects an entity or a list of entities associated
  with the `Starter` at runtime.

  When entityExpression represents a single entity, entityExpression will be
  Constant(value: AnyAutomationEntity).
  Otherwise, entityExpression is an `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Expression.html` capable of resolving to any number of entities.

  #### Declaration

  Swift

      var entityExpression: any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Expression.html { get }

- `


  ### [deviceType](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Starter#/s:13GoogleHomeSDK7StarterP10deviceTypeAA06DeviceF0_pXpSgvp)


  ` The identifier for the `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html` associated with the `Starter`,
  if the entity is a device.

  deviceType will be nil if entity is nil or not a device, such as a `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/Structure.html` or `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/Room.html`.

  #### Declaration

  Swift

      var deviceType: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html.Type)? { get }

- `


  ### [deviceTypeID](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Starter#/s:13GoogleHomeSDK7StarterP12deviceTypeIDSSSgvp)


  ` The string-based identifier for the `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html`. If deviceType is `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/UnknownDeviceType.html`
  it will refer to the original deviceTypeID provided.

  deviceTypeID will be nil if entity is nil or not a device, such as a `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/Structure.html` or `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/Room.html`.

  #### Declaration

  Swift

      var deviceTypeID: String? { get }