{
  "product": "Specification (reference)",
  "title": "State Machine Engine",
  "summary": "States, events and transitions — with the illegal moves impossible.",
  "category": "engines",
  "entries": [
    {
      "path": [
        "AI",
        "Model",
        "Finite states with one initial state"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Model",
        "Events trigger transitions"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Model",
        "Illegal event in a state is a no-op or an explicit error"
      ],
      "value": "",
      "status": "yes",
      "note": "stated, never silent corruption"
    },
    {
      "path": [
        "AI",
        "Model",
        "Guards conditioning a transition"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Model",
        "Context data carried alongside the state"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Hierarchy",
        "Nested states with inherited transitions"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Hierarchy",
        "Parallel regions"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Hierarchy",
        "History states"
      ],
      "value": "",
      "status": "yes",
      "note": "shallow and deep"
    },
    {
      "path": [
        "AI",
        "Actions",
        "Entry, exit and transition actions"
      ],
      "value": "",
      "status": "yes",
      "note": "ordering defined"
    },
    {
      "path": [
        "AI",
        "Actions",
        "Side effects isolated from the pure transition function"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Async",
        "Invoked services with done and error transitions"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Async",
        "Delayed transitions and timers"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspection",
        "Current state serialisable and restorable"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspection",
        "Transition log for debugging"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Inspection",
        "Machine definition exportable as a diagram"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Verification",
        "Unreachable states and dead ends detectable"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Verification",
        "Deterministic: one transition per state/event/guard set"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
