Use Discussions to propose and discuss product and/or technical requirements.
Use Issues to track well-scoped technical work that the community agrees should be done at some point.
Open Pull Requests when you want to contribute work towards an Issue, or you feel confident that your contribution is desireable and small enough to forego community discussion at the requirements and planning levels.