for(constforbiddenof['ensureBoards','renderAll','updateHud','nextPaint','save(','rebuildOccupancy'])assert(!placeSource.includes(forbidden),`Child placement still performs ${forbidden}`);
assert((expandSource.match(/refreshWorldView\(/g)||[]).length===1,'Expansion does not use one presentation/persistence commit');
for(constforbiddenof['ensureBoards','renderAll','updateHud'])assert(!expandSource.includes(forbidden),`Expansion bypasses the shared view pipeline with ${forbidden}`);
assert(!metaStateSource.includes('normalizeState')&&!metaStateSource.includes('markStateDirty')&&ensureMetaStateSource.includes('normalizeState(state)'),'State reads are not pure or explicit state repair is not delegated to normalizeState');
assert(!functionSource('puzzleOf').includes('markMetaDirty')&&functionSource('repairPuzzleDifficulty').includes('markMetaDirty'),'Puzzle reads still dirty metadata or difficulty repair lacks an explicit command boundary');
assert(functionSource('stateForStorage').includes('AppLogic.stateForStorage'),'State serialization is not delegated to the shared module');
assert(functionSource('collectConnectedLineComponent').includes('AppLogic.collectConnectedLineComponent'),'Connected-line traversal is not delegated to the shared module');
assert(stateRow.rev===5&&stateRow.expansionRetryRound===7&&!('transient'instateRow),'State serializer lost expansion repair progress or leaked transient fields');