CSV file
The first demo with a model built straight on Smart Table Model.

A model of its own
It is a short one. It answers the three, a sort key, and the two editing functions so people can type into the rows.
Every column reports Text, because a CSV field is a string until something says otherwise.
How it's wired
Columns come from the file's own header row. Save is a button, so edits sit in memory until somebody presses it. The page class is shared with the JSON demo.
Next: JSON file