marque-rules 0.2.0

Rule trait definitions for marque — the contract every rule crate implements
Documentation

marque-rules — trait definitions for the marque rule system.

This crate defines the contract every rule crate must satisfy. It has no rule implementations — those live in marque-capco and future crates. The engine depends only on this crate, enabling rule crates to be swapped.

Type split: FixProposal vs AppliedFix

FixProposal is pure data emitted by rules — deterministic, timestamp-free, classifier-free. AppliedFix wraps a proposal with runtime context (timestamp, classifier id, dry-run flag) and is constructed only by Engine::fix. This makes "suggested vs applied" a type-system invariant.