Ecto Changesets[0] are runtime constructs, yes. They're similar to libaries like Pydantic, if you're familiar with Python.
Yes, this is exactly what I was wondering, thanks. Another version of this that I love is Effect Schema in TypeScript land.
The runtime costs aren’t trivial, especially on large datasets, but I’ve come to love this pattern a lot.