What is the subtle difference between 志愿, 意愿, and 心愿?
Consider, in English, a single word can have more than one meaning, and two different words may have a function overlapped.
For example:

'Goal' can be replaced by 'wish' in some instances - e.g. &quot;My Goal(wish) is to become a doctor&quot;

'Dream' can be replaced by 'wish' in some instances - e.g. &quot; My Dream(wish) is to become a doctor&quot;

'Will' can be replaced by 'wish' in some instances - e.g. &quot; To become a doctor is my will(wish)&quot;


As for the difference between 志愿, 意愿 and 心愿

志愿 mainly mean: Goal; Dream

意愿 mainly mean: Will; Desire

心愿 mainly mean: Desire; Wish


All three above can mean 'Wish'

我的志愿（愿望）是成为一名医生 - My goal (wish) is to become a doctor
我的意愿（愿望）是成为一名医生 - My will (wish) is to become a doctor
我的心愿（愿望）是成为一名医生 - My desire (wish) is to become a doctor

The important thing is, it all depends on the context.
The best term for &quot;Wish&quot; in &quot;What is your birthday wish?&quot; is '愿望'  As in &quot;你的生日愿望是什么&quot;
Yes, 愿望 mainly mean 'wish' (n) but in some instances, you can translate it to 'desire, hope or dream'
Some more tips:

Use 志愿 if the wish is also an achievable goal (志 means goal, 志愿 = a wish you aim to achieve)
Use 意愿 if the wish is a determined one (意 means mind, 意愿 = a wish you have made up your mind to fulfill)
Use 心愿 if the wish is also a deep desire or a life long dream (心 means heart, 心愿 = a wish comes from your heart)