     public var actions: [DialogNodeAction]?
 
     /// The alias used to identify the dialog node.
-    public var title: String
+    public var title: String?
 
     /// How the dialog node is processed.
     public var nodeType: String?

        self.metadata = metadata
        self.nextStep = nextStep
        self.created = created
        self.title = title
        self.updated = updated
        self.actions = actions
        self.nodeType = nodeType
        self.eventName = eventName
        self.variable = variable

     - parameter metadata: The metadata (if any) for the dialog node.
     - parameter nextStep: The next step to execute following this dialog node.
     - parameter created: The timestamp for creation of the dialog node.
     - parameter updated: The timestamp for the most recent update to the dialog node.
     - parameter actions: The actions for the dialog node.
     - parameter title: The alias used to identify the dialog node.
     - parameter nodeType: How the dialog node is processed.
     - parameter eventName: How an `event_handler` node is processed.
     - parameter variable: The location in the dialog context where output is stored.

     - returns: An initialized `DialogNode`.
    */
    public init(dialogNodeID: String, description: String? = nil, conditions: String? = nil, parent: String? = nil, previousSibling: String? = nil, output: [String: JSON]? = nil, context: [String: JSON]? = nil, metadata: [String: JSON]? = nil, nextStep: DialogNodeNextStep? = nil, created: String? = nil, updated: String? = nil, actions: [DialogNodeAction]? = nil, title: String? = nil, nodeType: String? = nil, eventName: String? = nil, variable: String? = nil) {
        self.dialogNodeID = dialogNodeID
        self.description = description
        self.conditions = conditions
