function deepClone(json) {
  return JSON.parse(JSON.stringify(json));
}
// TODO(bckenny): could adopt "jsonified" type to ensure T will survive JSON
round trip: https://github.com/Microsoft/TypeScript/issues/21838
@template T
@param {T} json
@return {T}