handle_change
handle_change(old_term :: term(), new_term :: term(), constraints()) :: {:ok, term()} | {:error, term()}