When writing requirements, every word counts. Requirements are usually written in English using sentence templates. English is the standard nowadays because products are approved worldwide, or development teams and customers are located globally. The correct use of the modal auxiliary verbs "shall," "should," "must," "will," and "may" is particularly important.

Shall (must)
"Shall" designates a requirement as binding and is arguably the most important term for requirements. A requirement containing "shall" must be implemented, and its implementation must be verified. "Shall" should therefore never be interpreted as "should," but rather as "must"!
My recommendation is to formulate any binding requirement with "shall." "Shall not" indicates that something is not permissible. "Shall not" therefore does not mean that something must not be, but rather that it must not be. This is a crucial distinction.
Should
The modal auxiliary verb "should" indicates a flexible requirement. Here, a requirement is formulated that, if there are good reasons for doing so, can be dropped considering the context. For example, if this requirement would disproportionately increase development costs, it can be omitted. Furthermore, "should" is appropriate for requirements that are not testable. It can be used to formulate requirements that set goals for a development team, but which are not formally verifiable.
Must
“Must” is often used interchangeably with “shall.” I recommend against using “must,” as it only creates uncertainty. What is the difference between “must” and “shall”? Mixing them up should definitely be avoided. With “shall,” you're on the safe side.
Will (will)
The term "will" can be used to document factual decisions. This information is relevant for a supplier, but it is not a requirement for the supplier itself. "Will" can be used, for example, to specify how a third-party system or an existing solution behaves or will behave. "Will" requirements do not require verification by the supplier.
May (may)
It doesn't get any less than "may." A requirement with "may" is completely arbitrary. You can use it to request a feature that would be nice, but is also completely irrelevant. It's a case of "do it or don't do it.".
For those who enjoy these terminology, I have a quote from the mathematician and physicist Georg Christoph Lichtenberg.
I can't say, of course, whether things will be better if they change; but I can say this much: things must change if they are to be good.
