Do I have to provide both 'value' & 'safe_value'?
If you are adding field programmatically you only need to set
safe value is generated when the field is loaded.
It is the value passed through the function
_text_sanitize() which in this case i think is called through
More information on the difference between them here :