Form State
リアルタイムバリデーションや相関チェック、dirtyチェックなどが鬼門
ラジオボタンやセレクトボックスにおける「未選択」やnullとundefinedの区別
必須のラジオボタンでも初期表示では「未選択」状態にする必要があったりする
さらに初期表示の「未選択」状態と「選択なし」を選んだ状態もあったりする

としては
「未選択」は value === (null || undefined)
ではなく !!dirtyFields.value
で意味をもたせる
「選択なし」は undefined
nullはバイナリや時刻など、言語仕様上の理由や
Web APIの制約で仕方がないときのみ許容する
暗黙的な0フォールバックする場合はローカルスコープだけに留める