Advanced Problem
Cross-language content packs become unmaintainable when there is no manifest discipline, no compatibility strategy, and no migration path for old clients.
Step 1: Version each pack with explicit schema + content revisions
{
"pack": "jp-core-1",
"schema_version": 2,
"content_version": "2026.03.01",
"min_client": "1.8.0"
}
Step 2: Add migration adapters between schema versions
function migrateV1toV2(entry: any) {
return {
id: entry.id,
surface: entry.term,
reading: entry.reading || null,
meanings: Array.isArray(entry.meanings) ? entry.meanings : [entry.meaning],
};
}