schema validation and manipulation library