{
  "handle": "StateTransition",
  "mechanism": "Finite State Machine. A {{transition}} is defined as T: S x Event -> S. Only valid transitions allowed. Current {{state}} determines available actions.",
  "gloss": "Explicit finite-state machine governance",
  "sema_id": "sema:StateTransition#mh:SHA-256:bdc0c1988a26e15a4e90bb79b214e4bebe630bc53f758ca67c6e1148aa802686",
  "sema_ref": "StateTransition#bdc0",
  "sema_stub": "bdc0",
  "_meta": {
    "ring": 0,
    "tier": 1,
    "supersedes": [
      "sema:StateTransition#mh:SHA-256:3737f955afcae13b398c1961722ee8511ea8f737aca133329938de5cfb91bb57",
      "sema:StateTransition#mh:SHA-256:fa0a59735c22f83a00a12fd79576ebf5cf8609c6cf6206b2b01a15958911c3d2"
    ],
    "path": [
      "Infrastructure",
      "Primitives"
    ]
  },
  "invariants": [
    "Only declared transitions are permitted; an event with no transition from the current {{state}} is refused, not improvised.",
    "The available actions are a function of the current {{state}} alone."
  ],
  "failure_modes": [
    "Undeclared event: an event arrives that the machine has no transition for, and a caller treats the refusal as a failure of the event rather than of the model.",
    "Unreachable state: a state is declared with no transition leading to it."
  ],
  "dependencies": {
    "references": {
      "state": "sema:State#mh:SHA-256:4f25e6a16ccd37dc0bc154cccc7055cb504d49daa8b712f372a425eb6c7b8cb2",
      "transition": "sema:Transition#mh:SHA-256:9b62398c6edcd43ad2af8ec1df8186ece2b4f697772b3872227f4d9d8390e328"
    }
  },
  "sema_layer": "Infrastructure",
  "sema_category": "Primitives",
  "used_by": {
    "references": {
      "LatticeCommit": "sema:LatticeCommit#mh:SHA-256:488aef6c5b623b424066249025e3d9fd441e6d232467ad8d5862337f6f092ba7",
      "StateAudit": "sema:StateAudit#mh:SHA-256:63cfd2311667bd0cf3634a23d7c6bb15018d7903ec89e6f5453a827251d7a43c"
    },
    "composes_with": {
      "TaskLifecycle": "sema:TaskLifecycle#mh:SHA-256:559124d595219af971fe018e4709077bbe77f3ce7e1769a058cbeffd4a11c38b"
    }
  }
}
