Parsed documentation:
View on GitHub
Changesets allow filtering, casting and validation of model changes.

There is an example of working with changesets in the introductory
documentation in the `Ecto` module.

## The Ecto.Changeset struct

The fields are:

* `valid?`      - Stores if the changeset is valid
* `repo`        - The repository applying the changeset (only set after a Repo function is called)
* `model`       - The changeset root model
* `params`      - The parameters as given on changeset creation
* `changes`     - The `changes` from parameters that were approved in casting
* `errors`      - All errors from validations
* `validations` - All validations performed in the changeset
* `required`    - All required fields as a list of atoms
* `optional`    - All optional fields as a list of atoms
Please help! Open an issue on GitHub if this assessment is incorrect.