MarkReason

sealed interface MarkReason

Why a proposition was marked for collection by a CollectorStrategy.

A sealed family so the set of recognized reasons is closed for the built-in strategies, while remaining open for consumer-specific signals via Custom. Every case exposes a stable machine key so a downstream audit record can label the reason consistently without pattern-matching on the concrete type.

Inheritors

Types

Link copied to clipboard
data class Custom(val key: String, val description: String) : MarkReason

A consumer-defined reason, carrying its own machine key and human description.

Link copied to clipboard
data class Duplicate(val survivorId: String) : MarkReason

The proposition duplicates another, surviving proposition.

Link copied to clipboard
data object Stale : MarkReason

The proposition's decayed utility dropped below the staleness threshold.

Properties

Link copied to clipboard
abstract val key: String

Stable machine label for audit/grouping (e.g. "stale", "duplicate").