Pydantic shouldn't be a required dependency, support dataclasses (maybe attrs, typedicts, etc.. in future?)