Part of #68
Description
Refactor the current CSV reader/writer into a pluggable format interface so new formats can be added incrementally. This is the prerequisite for all other #68 sub-issues.
Acceptance Criteria
Notes
- Keep it simple: a tagged union or vtable-style dispatch in Zig is sufficient
- Don't remove
--tsv / --json flags yet — they can be aliases mapped to --output-format
- This issue is purely architectural; no new format support is added here
Part of #68
Description
Refactor the current CSV reader/writer into a pluggable format interface so new formats can be added incrementally. This is the prerequisite for all other #68 sub-issues.
Acceptance Criteria
FormatReader,FormatWritertypes or function pointers)--input-format <fmt>/-I <fmt>flag accepted (currently: onlycsvvalid)--output-format <fmt>/-O <fmt>flag accepted (currently: onlycsvvalid)--tsvand--jsonflags continue to work (mapped to--output-format tsv/jsoninternally)Notes
--tsv/--jsonflags yet — they can be aliases mapped to--output-format