|  | // bumps save versions
migrations = [
  (save) => {
    // does nothing
  }
];
function migrate(save, target=null) {
  if (target == null) {
    target = migrations.length;
  }
  let version = save.version;
  if (version == undefined) {
    alert("This save is from before versioning was added. It can't be automatically updated, and it might lose some settings. Double check that everything's there! Any subsequent saves will work correctly.");
    save["version"] = migrations.length;
    return false;
  }
  if (version == 0 ) {
    alert("This save is from before v1.0. It can't be automatically migrated, so it may lose some settings. Double check the resulting character. Subsequent saves will function correctly.");
    save["version"] = migrations.length;
    return false;
  }
  if (version < target) {
    for (let x = version; x < target; x++) {
      migrations[x](save);
    }
  } else {
    return false;
  }
  return true;
}
 |