C3: State Surface Declared¶
Enforces P2: Each harness is stateful.
BlockContract.state_surface is required. A StateSurface declares:
- persistence —
none,run,session,project, orglobal - queryable_via — e.g.
scorecard,ledger, orsnapshot_export - retention — how long the state is kept
persistence: none is legal, but it must be declared rather than left implicit.
Enforced at: tests/contract/test_state_surface_declared.py.