daemonic_error 0.1.0

Errors that compose, predict, and leave receipts - Compose: algebraic combination (in active development) - Predict: Glass/Severity - Receipts: audit trail, position, checksum - Reflection: Runtime Reflection through TopologySegment (in active development)
use crate::Glass;
use crate::daemonic::Anchor;
use super::symbolic::syntactic::SyntacticAnchor;

/// Fixes an interface contract — things that depend on this
/// anchor depend on its interface not changing.
/// DB mapping: D12 (Symmetry Score) + D0-D6 (Integrity)
///
/// Trait definitions implement this. DaemonicID implements this.
/// The axiom set implements this.
pub trait StructuralAnchor: Anchor where Self: Sized {
	/// What contract does this anchor fix?
	fn contract_description(&self) -> &str;

	/// Version of the contract. Increments when contract changes.
	fn contract_version(&self) -> u32 { 0 }

	/// Symmetry score — self-consistency check.
	/// 1.0 = perfectly symmetric (forward/backward traversal agrees).
	/// 0.0 = completely asymmetric (potential corruption).
	/// DB: maps directly to D12.
	fn symmetry_score(&self) -> f64 { 1.0 }
}