Ah. I understood. I never really understood that before now. The option / require / none flag is about the value, not about the option. So, now I understand why the constant is VALUE_REQUIRED and not REQUIRED like arguments

Anyway, I'm in the fnac at the airport ;) I have to wait again 3 hours. But I will not be able to continue this PR before my come back. The branch is in this repository. So IMHO, It could be better if you could finish this one for me.