Pydantic v2 vs attrs vs dataclasses - which to use in 2026?