 
      - returns: An initialized `Context`.
     */
-    public init(conversationID: String, system: SystemResponse, additionalProperties: [String: JSON] = [:]) {
+    public init(conversationID: String? = nil, system: SystemResponse? = nil, additionalProperties: [String: JSON] = [:]) {
         self.conversationID = conversationID
         self.system = system
         self.additionalProperties = additionalProperties

public struct Context {

    /// The unique identifier of the conversation.
    public var conversationID: String

    /// For internal use only.
    public var system: SystemResponse

    /// Additional properties associated with this model.
    public var additionalProperties: [String: JSON]


    public init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        conversationID = try container.decodeIfPresent(String.self, forKey: .conversationID)
        system = try container.decodeIfPresent(SystemResponse.self, forKey: .system)
        let dynamicContainer = try decoder.container(keyedBy: DynamicKeys.self)
        additionalProperties = try dynamicContainer.decode([String: JSON].self, excluding: CodingKeys.allValues)
    }

    public func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encodeIfPresent(conversationID, forKey: .conversationID)
        try container.encodeIfPresent(system, forKey: .system)
        var dynamicContainer = encoder.container(keyedBy: DynamicKeys.self)
        try dynamicContainer.encodeIfPresent(additionalProperties)
    }
