rlmesh_run_context_contract
Contexts are shared and retained independently from hook invocation. Every protocol slot is required; NULL slots fail with INVALID_ARGUMENT.
RLMeshStatus rlmesh_run_context_contract(
const RLMeshRunContext* run_context,
RLMeshEnvContract** out
)