The project already depends on attrs and this could reduce boilerplate and give us a more tested implementation.