issue #20983: test model idAttributes
issue #20983: cleanup implementation
issue #20983: wrote test and fixed bugs, and added survivable default
Merge pull request #682 from shackbarth/20983

issue #20983: keep 'undefined' out of history panel