feat: add boolean?string support