mark
abstract override fun mark(candidates: List<Proposition>, repository: PropositionRepository, ctx: CollectorRunContext): List<PropositionMark>
Same contract as CollectorStrategy.mark, but with the full run context available.
open override fun mark(candidates: List<Proposition>, repository: PropositionRepository, contextId: <Error class: unknown class>): List<PropositionMark>
Legacy SAM bridge: driven without a run context => ephemeral (blank) runId, no trace persistence.