This page summarizes the implemented core contracts. It is not a full API reference. It is a map of object responsibility and boundary ownership.
Time
| Contract | Role |
|---|
ReferenceTime | As-of timestamp for decisions |
Clock | Protocol for explicit time source |
FixedClock | Deterministic clock for tests and replay |
CycleContext | Identity and time context for one evaluation cycle |
FreshnessPolicy | Max-age check for event freshness |
SessionContext | Session and tradability metadata |
Market
| Contract | Role |
|---|
EventEnvelope | Adapter-normalized input event |
EventLineage | Source event lineage retained after normalization |
MarketEvent | Core market event after envelope normalization |
MarketSnapshot | Capability-bearing market state |
UnderlyingRef | Underlying identity |
InstrumentRef | Instrument identity |
PriceCapability | Price availability and value |
VolumeCapability | Volume availability and value |
SnapshotQuality | Snapshot quality flags |
Adapters
| Contract | Role |
|---|
AdapterEventBatch | Validated event batch crossing into Core |
MarketDataAdapter | Protocol for market payload normalization |
ExpressionAdapter | Protocol for intent expression |
ExpressionRouter | Routes preferred exposure to compatible adapter |
AdapterAttribution | Adapter id, version, and metadata on expressions |
Features And Patterns
| Contract | Role |
|---|
FeatureDefinition | Feature metadata and required capabilities |
FeatureRegistry | Immutable registry of definitions |
FeatureVector | Computed features and availability |
FeatureProvenance | Feature source and calculation metadata |
PatternDefinition | Pattern metadata, stages, hash, requirements |
PatternRegistry | Immutable pattern registry |
PatternHit | Evidence-rich pattern match |
PatternAvailability | Eligible, stale, retired, cooldown, disabled states |
Scoring And Intent
| Contract | Role |
|---|
TradeHypothesis | Scored thesis from pattern evidence |
EvidenceStack | Pattern hits contributing to a hypothesis |
ConvictionBreakdown | Scoring dimensions and final score |
SignalIntent | Instrument-neutral thesis handoff |
ExposurePreference | Desired expression family |
InvalidationContext | Portable invalidation information |
TargetContext | Portable target information |
IntentConstraints | Constraints carried into permission/expression |
EvidenceSummary | Compact attribution summary |
Permission
| Contract | Role |
|---|
RiskContext | Inputs to permission evaluation |
PermissionDecision | Allow, reject, defer, or downgrade result |
PermissionStatus | Permission taxonomy |
ReasonCode | Stable permission reason enum |
ConstraintResult | Applied permission constraint |
OperatorSwitches | Kill switch and operator controls |
PortfolioLimits | Portfolio-level risk controls |
Lifecycle And Outcomes
| Contract | Role |
|---|
PositionIntent | Admitted thesis ready for expression |
ExpressionRequest | Preferred exposure and constraints |
ExposureExpression | Adapter-selected exposure candidate |
ExpressionResult | Expressed, rejected, pending, or failed result |
OpenExposure | Tracked open exposure |
LifecycleTransition | Append-only state change record |
MarkEvent | Incoming mark observation |
MarkRecord | Persistable mark observation |
CloseEvent | Incoming close observation |
OutcomeRecord | Closed outcome with path and economic labels |
Boundary Summary
Core contracts should be portable across:
- live
- paper
- shadow
- replay
- backtest
- research
If a field only makes sense for one broker, one venue, one database table, or one dashboard, it probably does not belong in these contracts.