- try convert when invalid - default value - tag name like golang - direct parse from json or yaml - custom type class for `from_hash`