{
  "node": {
    "id": "block:bus-assign",
    "type": "Block",
    "label": "Bus assignment",
    "properties": {
      "id": "bus-assign",
      "name": "Bus assignment",
      "kind": "studio",
      "summary": "Replaces selected bus fields while preserving every other field.",
      "behavior": "Replacement ports inherit the exact declared field types. The original bus value remains unchanged for other consumers.",
      "ports": [
        {
          "name": "bus",
          "direction": "input",
          "unit": "1",
          "description": "pack; named bus with declared typed fields."
        },
        {
          "name": "state.soc",
          "direction": "input",
          "unit": "fraction",
          "description": "Replace state.soc; real signal.",
          "shape": [],
          "elementType": "real"
        },
        {
          "name": "bus",
          "direction": "output",
          "unit": "1",
          "description": "pack; named bus with declared typed fields."
        }
      ],
      "parameters": [
        {
          "key": "bus",
          "label": "Bus declaration",
          "unit": "1",
          "default": "pack",
          "description": "Explicit bus used by this worked model."
        },
        {
          "key": "fields",
          "label": "Replacement field paths",
          "unit": "1",
          "default": [
            "state.soc"
          ],
          "description": "Explicit fields used by this worked model."
        }
      ],
      "equations": [
        "updated[field] = replacement for selected fields; original[field] otherwise"
      ],
      "example": {
        "title": "Update nested battery telemetry",
        "text": "Initial-SOC = 0.5; Updated-SOC = 0.6; Cell-voltage = 3.7. Before at 1 s = 0.5; After at 1 s = 0.6.",
        "url": "https://design.lemonergy.com/cosim.html?example=routing-nested-bus",
        "label": "Open Studio example",
        "inputs": [
          {
            "port": "Initial-SOC",
            "label": "Initial-SOC",
            "value": 0.5,
            "unit": "fraction"
          },
          {
            "port": "Updated-SOC",
            "label": "Updated-SOC",
            "value": 0.6,
            "unit": "fraction"
          },
          {
            "port": "Cell-voltage",
            "label": "Cell-voltage",
            "value": 3.7,
            "unit": "voltage"
          }
        ],
        "checks": [
          {
            "port": "Before",
            "label": "Before",
            "atS": 1,
            "value": 0.5,
            "unit": "fraction",
            "tolerance": 1e-09
          },
          {
            "port": "After",
            "label": "After",
            "atS": 1,
            "value": 0.6,
            "unit": "fraction",
            "tolerance": 1e-09
          }
        ]
      },
      "limits": [
        "A field and one of its descendants cannot be replaced in the same assignment; replacement paths must be distinct."
      ],
      "references": [],
      "referenceNote": "This software operation is defined by its public contract and worked example; no external research result is claimed.",
      "caseIds": [
        "native-bus-assign"
      ],
      "availability": {
        "status": "released",
        "label": "Available in Lemonergy Studio",
        "detail": "The bundled example is available in the production release verified on 28 October 2026. The parameters and examples here are synthetic teaching fixtures, not a characterized cell or a validated operating limit."
      },
      "evidence": [
        "docs/glossary/native-block-verification.json"
      ],
      "sourceRepository": "Lemonergy Studio public contract",
      "sourceRevision": "verification-2026-10-27",
      "type": "bus-assign",
      "implementationId": "bus-assign",
      "url": "https://lemonergy.com/learn/glossary/blocks/bus-assign/",
      "documentationUrl": "https://lemonergy.com/learn/glossary/blocks/bus-assign/",
      "sourceFile": "block-library.json",
      "reviewed": "2026-10-27",
      "releaseEvidence": {
        "environment": "production",
        "status": "verified",
        "revision": "e76cadfc203e15eb41f3478d8b1044a5b851953d",
        "verifiedOn": "2026-10-28",
        "exampleUrls": [
          "https://design.lemonergy.com/cosim.html?example=routing-nested-bus"
        ]
      }
    }
  },
  "incoming": [
    {
      "id": "edge:usesBlock/native-bus-assign/0",
      "type": "usesBlock",
      "source": "workflow:native-bus-assign",
      "target": "block:bus-assign",
      "properties": {
        "sourceFile": "wiki-blocks.json",
        "position": 0,
        "name": "Bus assignment",
        "type": "bus-assign",
        "role": "Replacement ports inherit the exact declared field types. The original bus value remains unchanged for other consumers.",
        "settings": [
          "Use the block reference for settings and connections.",
          "Bundled example verified on the production release of 28 October 2026."
        ]
      }
    }
  ],
  "outgoing": [],
  "neighbors": [
    {
      "id": "workflow:native-bus-assign",
      "type": "Workflow",
      "label": "Update nested battery telemetry",
      "properties": {
        "id": "native-bus-assign",
        "title": "Update nested battery telemetry",
        "kind": "studio",
        "summary": "Replaces selected bus fields while preserving every other field.",
        "steps": [
          "Review the interface, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare outputs with the numerical checks; change one input and run again."
        ],
        "example": "Initial-SOC = 0.5; Updated-SOC = 0.6; Cell-voltage = 3.7. Before at 1 s = 0.5; After at 1 s = 0.6.",
        "observe": "Inspect the output channels and checks on the block reference page.",
        "limits": "A field and one of its descendants cannot be replaced in the same assignment; replacement paths must be distinct.",
        "url": "https://design.lemonergy.com/cosim.html?example=routing-nested-bus",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    }
  ]
}
