     /// - Throws: Any error thrown by `Entity.findOrCreate`, `TopLevelDecoder.decode(_: from:)` or `NSManagedObjectContext.decodingContext(at:)`
     /// - Note: Only use this method inside a closure submitted to `NSManagedObject.asDecodingContext(do:)`.
     /// - SeeAlso: `TopLevelDecoder.decode(_:from:in:)`
-    public final func decode<Entity: CoreDataDecodable>(_ entity: Entity.Type, from input: Input) throws -> Entity {
+    public func decode<Entity: CoreDataDecodable>(_ entity: Entity.Type, from input: Input) throws -> Entity {
         return try .findOrCreate(for: decode(entity.DTO.self, from: input), in: .decodingContext())
     }
 

        return try context.asDecodingContext { try decode(entity, from: data) }
    }
}
#endif

    }
}

// MARK: - Foundation decoder extensions

#if canImport(Combine)
import Combine

@available(OSX 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
extension TopLevelDecoder {
    /// Decodes the entity from a given `Input` using its `DTO` type.
    ///
