Ensure js model consistency with records vs containers

Also add and maintain official slot.records[].record to simplify (or
rather continue the current complexity of) things. Fixes #2833