CSV mode loads Papa Parse only when a CSV conversion runs. It handles quoted delimiters, doubled quotes, embedded newlines, CRLF, and delimiter detection. The workbench strips one leading byte-order mark, removes fully blank rows, rejects quote errors, measures the widest row, and pads missing trailing cells while retaining a ragged-row warning.
JSON mode uses the repository's strict JSON parser with comments and trailing commas disabled. The root must be an array of objects. Duplicate object keys are rejected before one value can overwrite another, and lexical number checks reject unsafe integers or decimals that JavaScript would round. Property order follows the first appearance of each key across records.
Every result uses one Markdown renderer. Backslashes and pipes are escaped, source newlines become generated <br> markers, leading and trailing spaces use non-breaking entities, and HTML-significant source characters are encoded. This keeps user text from becoming an active HTML element in the generated table while preserving a readable rendered value.
Bounds are enforced after both raw-input and parsed-shape measurement: 262,144 Unicode code points, 524,288 UTF-8 bytes, 5,000 rows, 100 columns, 200,000 normalized cells, 32,768 characters per cell, and 5,000,000 output bytes. Character limits and byte limits are separate so multibyte text is measured honestly.
The browser preview renders headers and cells as React text, not injected HTML. Normal conversion makes no application request with source or output. Consent-aware analytics receives only the parent slug, mode, option names, duration, byte counts, aggregate dimensions, and diagnostic totals; it does not receive delimiters supplied as data, field names, values, or Markdown.