I've created a helper class in my own library that enhances the existing dataclass:

a) __init__ accepts keyword-only arguments,
b) Optional[...] attribute without a specified default value would default to None in __init__.

I think this could be useful in stdlib. I'm thinking a dataclass decorator parameter like "init_kwonly" (default=False to provide backward compatibility) that if True would implement this behavior.

Thoughts?