             return nil
         }
         return characteristicObject
+    }
+    
+    func validateDescriptor<T>(
+        _ descriptor: Descriptor,
+        for continuation: PeripheralContinuation<T, Error>
+    ) -> CBDescriptor? {
+        guard let descriptorObject = self.cache.descriptors[descriptor] else {
+            continuation.resume(throwing: CentralError.invalidAttribute(descriptor.uuid))
+            return nil
+        }
+        return descriptorObject
     }
 }
 

    }
    
    func execute(_ operation: Operation.DiscoverDescriptors) -> Bool {
        // TODO: Discover Descriptor
        fatalError()
    }
    
    func execute(_ operation: Operation.ReadDescriptor) -> Bool {
        // TODO: Read Descriptor
        fatalError()
    }
    
    func execute(_ operation: Operation.WriteDescriptor) -> Bool {
        // TODO: Write Descriptor
        fatalError()
    }
    
    func execute(_ operation: Operation.WriteWithoutResponseReady) -> Bool {

    
    struct WriteDescriptor {
        let descriptor: DarwinCentral.Descriptor
        let data: Data
        let continuation: PeripheralContinuation<(), Error>
    }
    
