```php title="PHP" mime_type !== 'application/pdf') { return; } // Extract and attach metadata if (!isset($result->metadata)) { $result->metadata = []; } if (is_array($result->metadata)) { $result->metadata = array_merge($result->metadata, [ 'pdf_processor' => 'pdf-metadata-extractor', 'extracted_at' => date('Y-m-d H:i:s'), ]); } } public function processingStage(): string { return "Middle"; } public function shouldProcess(object $result, object $config): bool { return $result->mime_type === 'application/pdf'; } public function estimatedDurationMs(object $result): int { return 10; } public function priority(): int { return 60; } } // Register the PDF metadata extractor $processor = new PdfMetadataExtractor(); Kreuzberg::registerPostProcessor($processor); echo "PDF metadata extractor registered\n"; ```