{
  "handle": "Variable",
  "data_schema": {
    "type": "object",
    "required": [
      "name",
      "value",
      "type"
    ],
    "properties": {
      "name": {
        "type": "string",
        "description": "Variable identifier"
      },
      "value": {
        "description": "Current state"
      },
      "type": {
        "type": "string",
        "description": "Data type definition"
      },
      "history": {
        "type": "array",
        "description": "Previous values (optional)"
      }
    }
  },
  "mechanism": "A named container whose contents can change while the name continues to refer to the same thing. A dimension of freedom in the problem space: what varies is the contents, not the identity.",
  "gloss": "Mutable value",
  "_meta": {
    "ring": 1,
    "tier": 1,
    "path": [
      "Infrastructure",
      "Data Structures"
    ],
    "supersedes": [
      "sema:Variable#mh:SHA-256:f488e278141238c50584777b751863d84b094229e4568205e9ba54a9121c3aa5"
    ]
  },
  "sema_id": "sema:Variable#mh:SHA-256:5333c0009a269825753bf5470554844285c46920c32e3d46ed71403090224dc7",
  "sema_ref": "Variable#5333",
  "sema_stub": "5333",
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "invariants": [
    "The name denotes the same variable before and after its contents change.",
    "A reported value carries when it was read."
  ],
  "failure_modes": [
    "Stale read treated as current, so a clock difference is attributed to the parties.",
    "Identity reused: one name rebound to something that is not a later state of the same quantity."
  ],
  "used_by": {
    "references": {
      "AntifragileInversion": "sema:AntifragileInversion#mh:SHA-256:a56be34ec0d2ab0462c3513a97c2849fe48f819b5d739510500dbf17eaeaaa7a",
      "Correlation": "sema:Correlation#mh:SHA-256:3bd8ecb518efc816c4c986e434afb9b2c3d3801b8099e008c15b70e305bd3043",
      "Uncertain": "sema:Uncertain#mh:SHA-256:91b56e39fe4ccec7c6c80c865e8f679178293e85ec208eaceb9c814a9ca4bd53"
    }
  }
}
