Not sure if this is good idea, but considering some people could want to change IDs of their items/races/classes, this may be good way to avoid breaking saves - as long as modder doesn't change mod's ID, it would have analysis system that checks migration file for changed IIDs/CIDs/RIDs/etc.
migration.json file structure:
{
CID: {
"previous_id": "new_id"
}
}
This, of course, puts a lot of stress on ID recognising system, so it's suggestion to brainstorm if it's worth it. After all, IDs should not be changed, as you can always use descript field which is mutable element.
This could also work nicely for removing elements, though this can be also handled by system removing all unrecognised values too (this solution could break mods, though).
Not sure if this is good idea, but considering some people could want to change IDs of their items/races/classes, this may be good way to avoid breaking saves - as long as modder doesn't change mod's ID, it would have analysis system that checks migration file for changed IIDs/CIDs/RIDs/etc.
migration.json
file structure:This, of course, puts a lot of stress on ID recognising system, so it's suggestion to brainstorm if it's worth it. After all, IDs should not be changed, as you can always use
descript
field which is mutable element.