The inbox: one JSON file per message, with states and retention.
Proposal V1 §4 (consumption) and §6/§10.1 (retention). Messages move
``unread -> read -> acted``; acting records *which decision* consumed the
message, so an approval can be traced back from the thing it authorised.
Retention is the operator's ruling: an acted message prunes one year after it
was acted on, and its audit hash survives the prune. The audit trail is the
durable record; the body is not.
Dependencies
------------
- oc_connect.audit (AuditStore, MAX_DECISION_REF, timestamp, utc_now - audits read, acted and pruned transitions)
- oc_connect.comms (message_filename - the bus filename convention for a stored message)
- oc_diagnostics (_dbg structured logger)
- option_c_connector_contracts (InboundMessage, InboundState - the stored message model and its states)