finish

open override fun finish()

After the last round, project every analyzed shape into the aggregate schema descriptor (SCHEMA_DRIFT.md). Emitting here — rather than per-round in process — guarantees a single codec-schema.txt covering all @ProtocolMessage types, even when KSP defers symbols across rounds.