     public func encode(to encoder: Encoder) throws {
         var container = encoder.container(keyedBy: CodingKeys.self)
         try container.encode(dialogNodeID, forKey: .dialogNodeID)
-        try container.encode(description, forKey: .description)
-        try container.encode(conditions, forKey: .conditions)
-        try container.encode(parent, forKey: .parent)
-        try container.encode(previousSibling, forKey: .previousSibling)
-        try container.encode(output, forKey: .output)
-        try container.encode(context, forKey: .context)
-        try container.encode(metadata, forKey: .metadata)
-        try container.encode(nextStep, forKey: .nextStep)
-        try container.encode(created, forKey: .created)
+        try container.encodeIfPresent(description, forKey: .description)
+        try container.encodeIfPresent(conditions, forKey: .conditions)
+        try container.encodeIfPresent(parent, forKey: .parent)
+        try container.encodeIfPresent(previousSibling, forKey: .previousSibling)
+        try container.encodeIfPresent(output, forKey: .output)
+        try container.encodeIfPresent(context, forKey: .context)
+        try container.encodeIfPresent(metadata, forKey: .metadata)
+        try container.encodeIfPresent(nextStep, forKey: .nextStep)
+        try container.encodeIfPresent(created, forKey: .created)
         try container.encodeIfPresent(updated, forKey: .updated)
         try container.encodeIfPresent(actions, forKey: .actions)
-        try container.encode(title, forKey: .title)
+        try container.encodeIfPresent(title, forKey: .title)
         try container.encodeIfPresent(nodeType, forKey: .nodeType)
         try container.encodeIfPresent(eventName, forKey: .eventName)
         try container.encodeIfPresent(variable, forKey: .variable)

    public var actions: [DialogNodeAction]?

    /// The alias used to identify the dialog node.
    public var title: String

    /// How the dialog node is processed.
    public var nodeType: String?

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