Add options parsing to tags, and support the option 'optional'