Registration key; must match the key passed to @RegisterClass.
ProtectedapplyWhitespace normalization and truncation, shared by every cleaner.
Optionaloptions: ContentCleaningOptionsOptionalwarnings: string[]Clean content ahead of segmentation.
Never throws for content-shaped problems — inspect Success/ErrorMessage. On
failure the ORIGINAL content is returned rather than an empty string, so a bad
selector degrades to "not cleaned" instead of silently discarding the document.
ProtectedCleanPerform the cleaning. The base class handles validation, whitespace, and truncation.
ProtectednormalizeCollapse horizontal whitespace and runs of blank lines, while preserving the single blank line that marks a paragraph break — segmenters rely on it as a boundary signal.
StaticResolveResolve a registered cleaner by key.
Uses TryCreateInstance because CreateInstance never returns null for an unknown
key — it silently yields a hollow base instance whose abstract members are undefined.
Applies only the shared cleaning rules — whitespace normalization and optional truncation — leaving the text otherwise untouched.
This is the safe default for sources that are already plain text (transcripts, extracted PDF/DOCX text, markdown). It still earns its place in the pipeline: extracted text is routinely full of ragged spacing and stray blank lines from the extractor, and those confuse the paragraph-boundary detection that segmenters rely on.