Skip to main content
Glama

simulate_ladder

Read-only

Simulates caller-supplied Ladder IR and returns a bounded per-scan behavior trace to verify Boolean and numeric logic before generating or comparing .ldr files.

Instructions

Simulate caller-supplied Ladder IR and return a bounded per-scan behavior trace.

    This neither generates a system .ldr nor compares existing files; use generate_system_ldr
    for multi-control generation and compare_ldr for file differences. This is a
    Boolean/direct R/D model, not PLC emulation. scan_ms is required for T/C and FUN87/88/89.
    Supports the explicitly listed
    numeric/native subset; unsupported actions fail without a partial trace.
    Words use unsigned 16-bit storage. Missing X inputs reset false each scan.
    See get_capabilities simulation_model for assumptions and supported actions.
    

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ladder": "<ladder>",
      "inputs": "<inputs>"
    },
    "name": "simulate_ladder"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputsYesOrdered scan inputs; each object maps X device names to Boolean values.
ladderYesCaller-supplied Ladder IR object for the bounded model; obtain its full schema from get_design_guide(detail=true).
initialNoOptional initial Boolean or integer values keyed by modeled device.
scan_msNoMilliseconds per scan; required when the Ladder uses timers, counters or FUN87/88/89.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv1.1.1
    • removedInput schema / $defs
      Removed value: -{
      -  "AccumulativeTimer": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cv": {
      -        "title": "Cv",
      -        "type": "string"
      -      },
      -      "done": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Done",
      -        "type": "array"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "not_done": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Not Done",
      -        "type": "array"
      -      },
      -      "pv": {
      -        "title": "Pv",
      -        "type": "string"
      -      },
      -      "timing": {
      -        "default": "TRUE",
      -        "title": "Timing",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "accumulative_timer",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "unit_ms": {
      -        "enum": [
      -          10,
      -          100,
      -          1000
      -        ],
      -        "title": "Unit Ms",
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "unit_ms",
      -      "cv",
      -      "pv"
      -    ],
      -    "title": "AccumulativeTimer",
      -    "type": "object"
      -  },
      -  "AnalogConversion": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "count": {
      -        "maximum": 64,
      -        "minimum": 1,
      -        "title": "Count",
      -        "type": "integer"
      -      },
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "overflow": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Overflow",
      -        "type": "array"
      -      },
      -      "polarity": {
      -        "anyOf": [
      -          {
      -            "const": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Polarity"
      -      },
      -      "selector": {
      -        "default": "FALSE",
      -        "title": "Selector",
      -        "type": "string"
      -      },
      -      "source": {
      -        "title": "Source",
      -        "type": "string"
      -      },
      -      "table_length": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Table Length"
      -      },
      -      "type": {
      -        "enum": [
      -          "adcnv",
      -          "mlc"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "x_table": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "X Table"
      -      },
      -      "y_table": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Y Table"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "source",
      -      "count",
      -      "destination"
      -    ],
      -    "title": "AnalogConversion",
      -    "type": "object"
      -  },
      -  "Arithmetic": {
      -    "additionalProperties": false,
      -    "description": "test7: 16-bit register Sa, nonnegative immediate Sb, direct destination.",
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "operation": {
      -        "enum": [
      -          "add",
      -          "sub",
      -          "mul",
      -          "div"
      -        ],
      -        "title": "Operation",
      -        "type": "string"
      -      },
      -      "sa": {
      -        "title": "Sa",
      -        "type": "string"
      -      },
      -      "sb": {
      -        "maximum": 32767,
      -        "minimum": 0,
      -        "title": "Sb",
      -        "type": "integer"
      -      },
      -      "type": {
      -        "const": "arithmetic",
      -        "default": "arithmetic",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "unsigned_when": {
      -        "default": "FALSE",
      -        "title": "Unsigned When",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "sa",
      -      "sb",
      -      "destination"
      -    ],
      -    "title": "Arithmetic",
      -    "type": "object"
      -  },
      -  "BitAccess": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bit": {
      -        "maximum": 15,
      -        "minimum": 0,
      -        "title": "Bit",
      -        "type": "integer"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "input_bit": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Input Bit"
      -      },
      -      "output": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Output",
      -        "type": "array"
      -      },
      -      "type": {
      -        "enum": [
      -          "bitrd",
      -          "bitwr"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "word": {
      -        "title": "Word",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "word",
      -      "bit"
      -    ],
      -    "title": "BitAccess",
      -    "type": "object"
      -  },
      -  "Bitwise": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "operation": {
      -        "enum": [
      -          "and",
      -          "or"
      -        ],
      -        "title": "Operation",
      -        "type": "string"
      -      },
      -      "sa": {
      -        "title": "Sa",
      -        "type": "string"
      -      },
      -      "sb": {
      -        "title": "Sb",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "bitwise",
      -        "default": "bitwise",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "sa",
      -      "sb",
      -      "destination"
      -    ],
      -    "title": "Bitwise",
      -    "type": "object"
      -  },
      -  "BreakLoop": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "break",
      -        "default": "break",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "title": "BreakLoop",
      -    "type": "object"
      -  },
      -  "Coil": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "address": {
      -        "maximum": 65535,
      -        "minimum": 0,
      -        "title": "Address",
      -        "type": "integer"
      -      },
      -      "device": {
      -        "default": "Y",
      -        "enum": [
      -          "Y",
      -          "M"
      -        ],
      -        "title": "Device",
      -        "type": "string"
      -      },
      -      "inverted": {
      -        "default": false,
      -        "title": "Inverted",
      -        "type": "boolean"
      -      },
      -      "mode": {
      -        "default": "normal",
      -        "enum": [
      -          "normal",
      -          "set",
      -          "reset"
      -        ],
      -        "title": "Mode",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "address"
      -    ],
      -    "title": "Coil",
      -    "type": "object"
      -  },
      -  "Compare": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "equal": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Equal",
      -        "type": "array"
      -      },
      -      "greater": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Greater",
      -        "type": "array"
      -      },
      -      "less": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Less",
      -        "type": "array"
      -      },
      -      "sa": {
      -        "title": "Sa",
      -        "type": "string"
      -      },
      -      "sb": {
      -        "title": "Sb",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "compare",
      -        "default": "compare",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "unsigned_when": {
      -        "default": "FALSE",
      -        "title": "Unsigned When",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "sa",
      -      "sb"
      -    ],
      -    "title": "Compare",
      -    "type": "object"
      -  },
      -  "ComparisonContact": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "operation": {
      -        "enum": [
      -          "eq",
      -          "gt",
      -          "lt",
      -          "ne",
      -          "ge",
      -          "le"
      -        ],
      -        "title": "Operation",
      -        "type": "string"
      -      },
      -      "sa": {
      -        "title": "Sa",
      -        "type": "string"
      -      },
      -      "sb": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "maximum": 32767,
      -            "minimum": 0,
      -            "type": "integer"
      -          }
      -        ],
      -        "title": "Sb"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "sa",
      -      "sb"
      -    ],
      -    "title": "ComparisonContact",
      -    "type": "object"
      -  },
      -  "Contact": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "address": {
      -        "maximum": 65535,
      -        "minimum": 0,
      -        "title": "Address",
      -        "type": "integer"
      -      },
      -      "device": {
      -        "enum": [
      -          "X",
      -          "Y",
      -          "M",
      -          "T",
      -          "C"
      -        ],
      -        "title": "Device",
      -        "type": "string"
      -      },
      -      "normally_closed": {
      -        "default": false,
      -        "title": "Normally Closed",
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "device",
      -      "address"
      -    ],
      -    "title": "Contact",
      -    "type": "object"
      -  },
      -  "Counter": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "address": {
      -        "maximum": 65535,
      -        "minimum": 0,
      -        "title": "Address",
      -        "type": "integer"
      -      },
      -      "clear": {
      -        "default": "always_on",
      -        "title": "Clear",
      -        "type": "string"
      -      },
      -      "preset": {
      -        "maximum": 65535,
      -        "minimum": 0,
      -        "title": "Preset",
      -        "type": "integer"
      -      },
      -      "pulse": {
      -        "default": "always_on",
      -        "title": "Pulse",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "counter",
      -        "default": "counter",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "address",
      -      "preset"
      -    ],
      -    "title": "Counter",
      -    "type": "object"
      -  },
      -  "Differential": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "pattern": "^[YM](0|[1-9][0-9]{0,2})$",
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "trigger": {
      -        "default": "TRUE",
      -        "title": "Trigger",
      -        "type": "string"
      -      },
      -      "type": {
      -        "enum": [
      -          "difu",
      -          "difd"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "destination"
      -    ],
      -    "title": "Differential",
      -    "type": "object"
      -  },
      -  "Divide48": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "encoding": {
      -        "default": "two_inputs",
      -        "enum": [
      -          "two_inputs",
      -          "single_input"
      -        ],
      -        "title": "Encoding",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "sa": {
      -        "title": "Sa",
      -        "type": "string"
      -      },
      -      "sb": {
      -        "title": "Sb",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "div48",
      -        "default": "div48",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "unsigned_when": {
      -        "default": "FALSE",
      -        "title": "Unsigned When",
      -        "type": "string"
      -      },
      -      "zero": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Zero",
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "sa",
      -      "sb",
      -      "destination"
      -    ],
      -    "title": "Divide48",
      -    "type": "object"
      -  },
      -  "EdgeContact": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "pattern": "^X(0|[1-9][0-9]{0,2})$",
      -        "title": "Input",
      -        "type": "string"
      -      },
      -      "kind": {
      -        "enum": [
      -          "rising",
      -          "falling"
      -        ],
      -        "title": "Kind",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "input"
      -    ],
      -    "title": "EdgeContact",
      -    "type": "object"
      -  },
      -  "ExclusiveLogic": {
      -    "additionalProperties": false,
      -    "description": "FUN35/36 word logic; sampled T1 is a numeric value, not a T contact.",
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "operation": {
      -        "enum": [
      -          "xor",
      -          "xnr"
      -        ],
      -        "title": "Operation",
      -        "type": "string"
      -      },
      -      "sa": {
      -        "title": "Sa",
      -        "type": "string"
      -      },
      -      "sb": {
      -        "title": "Sb",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "exclusive_logic",
      -        "default": "exclusive_logic",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "sa",
      -      "sb",
      -      "destination"
      -    ],
      -    "title": "ExclusiveLogic",
      -    "type": "object"
      -  },
      -  "FloatCompare": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "equal": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Equal",
      -        "type": "array"
      -      },
      -      "greater": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Greater",
      -        "type": "array"
      -      },
      -      "less": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Less",
      -        "type": "array"
      -      },
      -      "sa": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "number"
      -          }
      -        ],
      -        "title": "Sa"
      -      },
      -      "sb": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "number"
      -          }
      -        ],
      -        "title": "Sb"
      -      },
      -      "type": {
      -        "const": "float_compare",
      -        "default": "float_compare",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "sa",
      -      "sb"
      -    ],
      -    "title": "FloatCompare",
      -    "type": "object"
      -  },
      -  "FloatOperation": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "operation": {
      -        "enum": [
      -          "i_to_f",
      -          "f_to_i",
      -          "add",
      -          "sub",
      -          "mul",
      -          "div",
      -          "sqrt",
      -          "sin",
      -          "cos",
      -          "tan",
      -          "neg",
      -          "abs",
      -          "ln",
      -          "exp",
      -          "log",
      -          "pow",
      -          "asin",
      -          "acos",
      -          "atan"
      -        ],
      -        "title": "Operation",
      -        "type": "string"
      -      },
      -      "sa": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Sa"
      -      },
      -      "sb": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Sb"
      -      },
      -      "type": {
      -        "const": "float_operation",
      -        "default": "float_operation",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "destination"
      -    ],
      -    "title": "FloatOperation",
      -    "type": "object"
      -  },
      -  "FloatZoneCompare": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "above": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Above",
      -        "type": "array"
      -      },
      -      "below": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Below",
      -        "type": "array"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "lower": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "number"
      -          }
      -        ],
      -        "title": "Lower"
      -      },
      -      "source": {
      -        "title": "Source",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "float_zone_compare",
      -        "default": "float_zone_compare",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "upper": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "number"
      -          }
      -        ],
      -        "title": "Upper"
      -      },
      -      "within": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Within",
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "source",
      -      "upper",
      -      "lower"
      -    ],
      -    "title": "FloatZoneCompare",
      -    "type": "object"
      -  },
      -  "ForLoop": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "count": {
      -        "maximum": 16383,
      -        "minimum": 1,
      -        "title": "Count",
      -        "type": "integer"
      -      },
      -      "type": {
      -        "const": "for",
      -        "default": "for",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "count"
      -    ],
      -    "title": "ForLoop",
      -    "type": "object"
      -  },
      -  "HighSpeedCounter": {
      -    "additionalProperties": false,
      -    "description": "Exact HSC0 read / double-word constant-zero PV write anchors only.",
      -    "properties": {
      -      "counter": {
      -        "const": "HSC0",
      -        "default": "HSC0",
      -        "title": "Counter",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "source": {
      -        "anyOf": [
      -          {
      -            "const": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Source"
      -      },
      -      "target": {
      -        "anyOf": [
      -          {
      -            "const": "PV",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Target"
      -      },
      -      "type": {
      -        "enum": [
      -          "hsctr",
      -          "hsctw"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "HighSpeedCounter",
      -    "type": "object"
      -  },
      -  "ImmediateIO": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "count": {
      -        "maximum": 36,
      -        "minimum": 1,
      -        "title": "Count",
      -        "type": "integer"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "start": {
      -        "title": "Start",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "imdio",
      -        "default": "imdio",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "start",
      -      "count"
      -    ],
      -    "title": "ImmediateIO",
      -    "type": "object"
      -  },
      -  "IntegerFunction": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "count": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "maximum": 256,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Count"
      -      },
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "mode": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              0,
      -              1
      -            ],
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Mode"
      -      },
      -      "source": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Source"
      -      },
      -      "type": {
      -        "enum": [
      -          "mean",
      -          "sqrt",
      -          "neg",
      -          "abs",
      -          "ext",
      -          "crc16"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "zero": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Zero",
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "destination"
      -    ],
      -    "title": "IntegerFunction",
      -    "type": "object"
      -  },
      -  "Ladder": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "networks": {
      -        "items": {
      -          "$ref": "#/$defs/Network"
      -        },
      -        "maxItems": 1000,
      -        "minItems": 1,
      -        "title": "Networks",
      -        "type": "array"
      -      },
      -      "profile": {
      -        "default": "FBs-20MC",
      -        "enum": [
      -          "FBs-32MC-test30",
      -          "FBs-32MN-test29",
      -          "FBs-40MC-test27",
      -          "HB1-32M-test23",
      -          "FB-28MA-test22",
      -          "FBe-40MC-test21",
      -          "FBe-20MA-test19",
      -          "FBn-26MC-test17",
      -          "FBs-60MC-test16",
      -          "FBs-20MC",
      -          "FBs-24MA",
      -          "FBs-24MA-test7",
      -          "FBs-32MA-test11",
      -          "FBs-40MA-test12",
      -          "FBs-44MN-test13"
      -        ],
      -        "title": "Profile",
      -        "type": "string"
      -      },
      -      "symbols": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "maxProperties": 512,
      -        "title": "Symbols",
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "networks"
      -    ],
      -    "title": "Ladder",
      -    "type": "object"
      -  },
      -  "LinearConversion": {
      -    "additionalProperties": false,
      -    "description": "FUN33 LCNV. Md/L variations are inferred; pulse/indirect forms unsupported.",
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "length": {
      -        "default": 1,
      -        "maximum": 64,
      -        "minimum": 1,
      -        "title": "Length",
      -        "type": "integer"
      -      },
      -      "mode": {
      -        "default": 0,
      -        "maximum": 3,
      -        "minimum": 0,
      -        "title": "Mode",
      -        "type": "integer"
      -      },
      -      "source": {
      -        "title": "Source",
      -        "type": "string"
      -      },
      -      "table": {
      -        "title": "Table",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "lcnv",
      -        "default": "lcnv",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "source",
      -      "table",
      -      "destination"
      -    ],
      -    "title": "LinearConversion",
      -    "type": "object"
      -  },
      -  "MasterControl": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "number": {
      -        "maximum": 127,
      -        "minimum": 0,
      -        "title": "Number",
      -        "type": "integer"
      -      },
      -      "type": {
      -        "const": "mc",
      -        "default": "mc",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "number"
      -    ],
      -    "title": "MasterControl",
      -    "type": "object"
      -  },
      -  "MasterEnd": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "number": {
      -        "maximum": 127,
      -        "minimum": 0,
      -        "title": "Number",
      -        "type": "integer"
      -      },
      -      "type": {
      -        "const": "mce",
      -        "default": "mce",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "number"
      -    ],
      -    "title": "MasterEnd",
      -    "type": "object"
      -  },
      -  "Network": {
      -    "additionalProperties": false,
      -    "description": "Left-associative logic steps, then coils. No implicit operator precedence.",
      -    "properties": {
      -      "action": {
      -        "anyOf": [
      -          {
      -            "discriminator": {
      -              "mapping": {
      -                "7sgdl": "#/$defs/PeripheralIO",
      -                "abs": "#/$defs/IntegerFunction",
      -                "accumulative_timer": "#/$defs/AccumulativeTimer",
      -                "adcnv": "#/$defs/AnalogConversion",
      -                "arithmetic": "#/$defs/Arithmetic",
      -                "ascii_literal": "#/$defs/ProcessFunction",
      -                "ascii_to_hex": "#/$defs/ProcessFunction",
      -                "ascwr": "#/$defs/ProcessFunction",
      -                "binary_to_gray": "#/$defs/ProcessFunction",
      -                "bit_move": "#/$defs/ProcessFunction",
      -                "bit_shift": "#/$defs/ProcessFunction",
      -                "bitrd": "#/$defs/BitAccess",
      -                "bitwise": "#/$defs/Bitwise",
      -                "bitwr": "#/$defs/BitAccess",
      -                "block_compare": "#/$defs/ProcessFunction",
      -                "block_table_move": "#/$defs/ProcessFunction",
      -                "break": "#/$defs/BreakLoop",
      -                "byte_distribute": "#/$defs/ProcessFunction",
      -                "byte_move": "#/$defs/ProcessFunction",
      -                "byte_swap": "#/$defs/ProcessFunction",
      -                "byte_unite": "#/$defs/ProcessFunction",
      -                "call": "#/$defs/SampleCall",
      -                "compare": "#/$defs/Compare",
      -                "crc16": "#/$defs/IntegerFunction",
      -                "decode_bits": "#/$defs/ProcessFunction",
      -                "decrement": "#/$defs/RegisterStep",
      -                "difd": "#/$defs/Differential",
      -                "difu": "#/$defs/Differential",
      -                "div48": "#/$defs/Divide48",
      -                "dsw": "#/$defs/PeripheralIO",
      -                "encode_bits": "#/$defs/ProcessFunction",
      -                "exclusive_logic": "#/$defs/ExclusiveLogic",
      -                "ext": "#/$defs/IntegerFunction",
      -                "file_register": "#/$defs/ProcessFunction",
      -                "float_compare": "#/$defs/FloatCompare",
      -                "float_operation": "#/$defs/FloatOperation",
      -                "float_zone_compare": "#/$defs/FloatZoneCompare",
      -                "for": "#/$defs/ForLoop",
      -                "gray_to_binary": "#/$defs/ProcessFunction",
      -                "hex_to_ascii": "#/$defs/ProcessFunction",
      -                "hkey": "#/$defs/PeripheralIO",
      -                "hms_to_seconds": "#/$defs/ProcessFunction",
      -                "hsctr": "#/$defs/HighSpeedCounter",
      -                "hsctw": "#/$defs/HighSpeedCounter",
      -                "imdio": "#/$defs/ImmediateIO",
      -                "increment": "#/$defs/RegisterStep",
      -                "jmp": "#/$defs/SampleFlow",
      -                "lbl": "#/$defs/SampleFlow",
      -                "lcnv": "#/$defs/LinearConversion",
      -                "matrix_and": "#/$defs/ProcessFunction",
      -                "matrix_bit_count": "#/$defs/ProcessFunction",
      -                "matrix_bit_read": "#/$defs/ProcessFunction",
      -                "matrix_bit_rotate": "#/$defs/ProcessFunction",
      -                "matrix_bit_shift": "#/$defs/ProcessFunction",
      -                "matrix_bit_write": "#/$defs/ProcessFunction",
      -                "matrix_compare": "#/$defs/ProcessFunction",
      -                "matrix_invert": "#/$defs/ProcessFunction",
      -                "matrix_or": "#/$defs/ProcessFunction",
      -                "matrix_xnr": "#/$defs/ProcessFunction",
      -                "matrix_xor": "#/$defs/ProcessFunction",
      -                "mc": "#/$defs/MasterControl",
      -                "mce": "#/$defs/MasterEnd",
      -                "mean": "#/$defs/IntegerFunction",
      -                "memory_pack_read": "#/$defs/ProcessFunction",
      -                "memory_pack_write": "#/$defs/ProcessFunction",
      -                "mlc": "#/$defs/AnalogConversion",
      -                "move_inverse": "#/$defs/ProcessFunction",
      -                "move_word": "#/$defs/ProcessFunction",
      -                "muxi": "#/$defs/PeripheralIO",
      -                "neg": "#/$defs/IntegerFunction",
      -                "next": "#/$defs/NextLoop",
      -                "nibble_distribute": "#/$defs/ProcessFunction",
      -                "nibble_move": "#/$defs/ProcessFunction",
      -                "nibble_unite": "#/$defs/ProcessFunction",
      -                "pid": "#/$defs/PID",
      -                "pulse_output": "#/$defs/ProcessFunction",
      -                "pwm": "#/$defs/ProcessFunction",
      -                "queue": "#/$defs/ProcessFunction",
      -                "ramp": "#/$defs/ProcessFunction",
      -                "ramp2": "#/$defs/ProcessFunction",
      -                "reg_to_table": "#/$defs/ProcessFunction",
      -                "register_or": "#/$defs/RegisterOr",
      -                "register_table_search": "#/$defs/ProcessFunction",
      -                "rotate_left": "#/$defs/ProcessFunction",
      -                "rotate_right": "#/$defs/ProcessFunction",
      -                "rswdt": "#/$defs/Watchdog",
      -                "seconds_to_hms": "#/$defs/ProcessFunction",
      -                "shift_left": "#/$defs/ProcessFunction",
      -                "shift_right": "#/$defs/ProcessFunction",
      -                "speed_detect": "#/$defs/ProcessFunction",
      -                "sqrt": "#/$defs/IntegerFunction",
      -                "stack": "#/$defs/ProcessFunction",
      -                "sum": "#/$defs/SumWords",
      -                "system_status": "#/$defs/ProcessFunction",
      -                "table_compare": "#/$defs/ProcessFunction",
      -                "table_fill": "#/$defs/ProcessFunction",
      -                "table_rotate": "#/$defs/ProcessFunction",
      -                "table_shift": "#/$defs/ProcessFunction",
      -                "table_sort": "#/$defs/ProcessFunction",
      -                "table_swap": "#/$defs/ProcessFunction",
      -                "table_to_reg": "#/$defs/ProcessFunction",
      -                "table_to_table": "#/$defs/ProcessFunction",
      -                "text_display": "#/$defs/ProcessFunction",
      -                "tkey": "#/$defs/PeripheralIO",
      -                "to_seven_segment": "#/$defs/ProcessFunction",
      -                "toggle_bit": "#/$defs/ProcessFunction",
      -                "tpctl": "#/$defs/TemperatureControl",
      -                "udctr": "#/$defs/UpDownCounter",
      -                "wdt": "#/$defs/Watchdog",
      -                "word_conversion": "#/$defs/WordConversion",
      -                "word_exchange": "#/$defs/ProcessFunction",
      -                "zone_compare": "#/$defs/ZoneCompare",
      -                "zone_write": "#/$defs/ProcessFunction"
      -              },
      -              "propertyName": "type"
      -            },
      -            "oneOf": [
      -              {
      -                "$ref": "#/$defs/RegisterOr"
      -              },
      -              {
      -                "$ref": "#/$defs/ForLoop"
      -              },
      -              {
      -                "$ref": "#/$defs/NextLoop"
      -              },
      -              {
      -                "$ref": "#/$defs/BreakLoop"
      -              },
      -              {
      -                "$ref": "#/$defs/LinearConversion"
      -              },
      -              {
      -                "$ref": "#/$defs/Arithmetic"
      -              },
      -              {
      -                "$ref": "#/$defs/RegisterStep"
      -              },
      -              {
      -                "$ref": "#/$defs/Bitwise"
      -              },
      -              {
      -                "$ref": "#/$defs/ExclusiveLogic"
      -              },
      -              {
      -                "$ref": "#/$defs/AnalogConversion"
      -              },
      -              {
      -                "$ref": "#/$defs/BitAccess"
      -              },
      -              {
      -                "$ref": "#/$defs/SampleFlow"
      -              },
      -              {
      -                "$ref": "#/$defs/AccumulativeTimer"
      -              },
      -              {
      -                "$ref": "#/$defs/TemperatureControl"
      -              },
      -              {
      -                "$ref": "#/$defs/SampleCall"
      -              },
      -              {
      -                "$ref": "#/$defs/ProcessFunction"
      -              },
      -              {
      -                "$ref": "#/$defs/IntegerFunction"
      -              },
      -              {
      -                "$ref": "#/$defs/Watchdog"
      -              },
      -              {
      -                "$ref": "#/$defs/HighSpeedCounter"
      -              },
      -              {
      -                "$ref": "#/$defs/Divide48"
      -              },
      -              {
      -                "$ref": "#/$defs/SumWords"
      -              },
      -              {
      -                "$ref": "#/$defs/PID"
      -              },
      -              {
      -                "$ref": "#/$defs/PeripheralIO"
      -              },
      -              {
      -                "$ref": "#/$defs/ImmediateIO"
      -              },
      -              {
      -                "$ref": "#/$defs/FloatOperation"
      -              },
      -              {
      -                "$ref": "#/$defs/FloatCompare"
      -              },
      -              {
      -                "$ref": "#/$defs/FloatZoneCompare"
      -              },
      -              {
      -                "$ref": "#/$defs/WordConversion"
      -              },
      -              {
      -                "$ref": "#/$defs/ZoneCompare"
      -              },
      -              {
      -                "$ref": "#/$defs/Compare"
      -              },
      -              {
      -                "$ref": "#/$defs/MasterControl"
      -              },
      -              {
      -                "$ref": "#/$defs/MasterEnd"
      -              },
      -              {
      -                "$ref": "#/$defs/Differential"
      -              },
      -              {
      -                "$ref": "#/$defs/UpDownCounter"
      -              }
      -            ]
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Action"
      -      },
      -      "block": {
      -        "anyOf": [
      -          {
      -            "discriminator": {
      -              "mapping": {
      -                "counter": "#/$defs/Counter",
      -                "timer": "#/$defs/Timer"
      -              },
      -              "propertyName": "type"
      -            },
      -            "oneOf": [
      -              {
      -                "$ref": "#/$defs/Timer"
      -              },
      -              {
      -                "$ref": "#/$defs/Counter"
      -              }
      -            ]
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Block"
      -      },
      -      "branch_encoding": {
      -        "default": "default",
      -        "enum": [
      -          "default",
      -          "test9_or"
      -        ],
      -        "title": "Branch Encoding",
      -        "type": "string"
      -      },
      -      "coils": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Coils",
      -        "type": "array"
      -      },
      -      "comment": {
      -        "default": "",
      -        "maxLength": 1000,
      -        "title": "Comment",
      -        "type": "string"
      -      },
      -      "comparison_chain": {
      -        "items": {
      -          "$ref": "#/$defs/ComparisonContact"
      -        },
      -        "maxItems": 32,
      -        "title": "Comparison Chain",
      -        "type": "array"
      -      },
      -      "condition": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Condition"
      -      },
      -      "direct_rail": {
      -        "default": false,
      -        "title": "Direct Rail",
      -        "type": "boolean"
      -      },
      -      "edge": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/EdgeContact"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "empty": {
      -        "default": false,
      -        "title": "Empty",
      -        "type": "boolean"
      -      },
      -      "steps": {
      -        "items": {
      -          "$ref": "#/$defs/Step"
      -        },
      -        "maxItems": 256,
      -        "title": "Steps",
      -        "type": "array"
      -      }
      -    },
      -    "title": "Network",
      -    "type": "object"
      -  },
      -  "NextLoop": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "type": {
      -        "const": "next",
      -        "default": "next",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "title": "NextLoop",
      -    "type": "object"
      -  },
      -  "PID": {
      -    "additionalProperties": false,
      -    "description": "FUN30: enable denotes A/M, not an execution enable pin. Ts is in 10 ms units.",
      -    "properties": {
      -      "bumpless": {
      -        "default": "FALSE",
      -        "title": "Bumpless",
      -        "type": "string"
      -      },
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "direction": {
      -        "default": "TRUE",
      -        "title": "Direction",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "high": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "High",
      -        "type": "array"
      -      },
      -      "interval": {
      -        "maximum": 3000,
      -        "minimum": 1,
      -        "title": "Interval",
      -        "type": "integer"
      -      },
      -      "low": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Low",
      -        "type": "array"
      -      },
      -      "parameters": {
      -        "title": "Parameters",
      -        "type": "string"
      -      },
      -      "setting": {
      -        "title": "Setting",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "pid",
      -        "default": "pid",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "work": {
      -        "title": "Work",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "interval",
      -      "setting",
      -      "destination",
      -      "parameters",
      -      "work"
      -    ],
      -    "title": "PID",
      -    "type": "object"
      -  },
      -  "PeripheralIO": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Destination"
      -      },
      -      "done": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Done",
      -        "type": "array"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "function_pressed": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Function Pressed",
      -        "type": "array"
      -      },
      -      "input": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Input"
      -      },
      -      "key_start": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Key Start"
      -      },
      -      "mode": {
      -        "anyOf": [
      -          {
      -            "maximum": 3,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Mode"
      -      },
      -      "output": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Output"
      -      },
      -      "pressed": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Pressed",
      -        "type": "array"
      -      },
      -      "rows": {
      -        "anyOf": [
      -          {
      -            "maximum": 8,
      -            "minimum": 2,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Rows"
      -      },
      -      "source": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Source"
      -      },
      -      "type": {
      -        "enum": [
      -          "tkey",
      -          "hkey",
      -          "dsw",
      -          "7sgdl",
      -          "muxi"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "work": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Work"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "PeripheralIO",
      -    "type": "object"
      -  },
      -  "ProcessFunction": {
      -    "additionalProperties": false,
      -    "description": "Direct-register forms sampled in test20/21; not arbitrary instruction modes.",
      -    "properties": {
      -      "abort": {
      -        "default": "FALSE",
      -        "title": "Abort",
      -        "type": "string"
      -      },
      -      "accelerating": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Accelerating",
      -        "type": "array"
      -      },
      -      "active": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Active",
      -        "type": "array"
      -      },
      -      "ascending": {
      -        "default": "FALSE",
      -        "title": "Ascending",
      -        "type": "string"
      -      },
      -      "at_lower": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "At Lower",
      -        "type": "array"
      -      },
      -      "at_upper": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "At Upper",
      -        "type": "array"
      -      },
      -      "bank": {
      -        "anyOf": [
      -          {
      -            "maximum": 1,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Bank"
      -      },
      -      "bit_destination": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Bit Destination"
      -      },
      -      "bit_length": {
      -        "anyOf": [
      -          {
      -            "maximum": 8,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Bit Length"
      -      },
      -      "clear": {
      -        "default": "FALSE",
      -        "title": "Clear",
      -        "type": "string"
      -      },
      -      "count": {
      -        "anyOf": [
      -          {
      -            "maximum": 511,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Count"
      -      },
      -      "decelerating": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Decelerating",
      -        "type": "array"
      -      },
      -      "destination": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Destination"
      -      },
      -      "destination_index": {
      -        "anyOf": [
      -          {
      -            "maximum": 15,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Destination Index"
      -      },
      -      "different": {
      -        "default": "FALSE",
      -        "title": "Different",
      -        "type": "string"
      -      },
      -      "display_number": {
      -        "anyOf": [
      -          {
      -            "maximum": 65535,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Display Number"
      -      },
      -      "display_off": {
      -        "default": "FALSE",
      -        "title": "Display Off",
      -        "type": "string"
      -      },
      -      "display_on": {
      -        "default": "FALSE",
      -        "title": "Display On",
      -        "type": "string"
      -      },
      -      "done": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Done",
      -        "type": "array"
      -      },
      -      "empty_flag": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Empty Flag",
      -        "type": "array"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "fall_ms": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Fall Ms"
      -      },
      -      "file_base": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "File Base"
      -      },
      -      "forward_output": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Forward Output"
      -      },
      -      "found": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Found",
      -        "type": "array"
      -      },
      -      "frequency": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Frequency"
      -      },
      -      "from_head": {
      -        "default": "FALSE",
      -        "title": "From Head",
      -        "type": "string"
      -      },
      -      "full": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Full",
      -        "type": "array"
      -      },
      -      "group": {
      -        "anyOf": [
      -          {
      -            "maximum": 3,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Group"
      -      },
      -      "high_priority": {
      -        "default": "FALSE",
      -        "title": "High Priority",
      -        "type": "string"
      -      },
      -      "increment": {
      -        "default": "FALSE",
      -        "title": "Increment",
      -        "type": "string"
      -      },
      -      "input_bit": {
      -        "default": "FALSE",
      -        "title": "Input Bit",
      -        "type": "string"
      -      },
      -      "input_word": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Input Word"
      -      },
      -      "left": {
      -        "default": "FALSE",
      -        "title": "Left",
      -        "type": "string"
      -      },
      -      "length": {
      -        "anyOf": [
      -          {
      -            "maximum": 2048,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Length"
      -      },
      -      "length_register": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Length Register"
      -      },
      -      "lower": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Lower"
      -      },
      -      "maximum": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Maximum"
      -      },
      -      "mode": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              0,
      -              1
      -            ],
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Mode"
      -      },
      -      "offset": {
      -        "anyOf": [
      -          {
      -            "maximum": 32510,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Offset"
      -      },
      -      "on_ms": {
      -        "anyOf": [
      -          {
      -            "maximum": 32767,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "On Ms"
      -      },
      -      "ones": {
      -        "default": "FALSE",
      -        "title": "Ones",
      -        "type": "string"
      -      },
      -      "output": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Output",
      -        "type": "array"
      -      },
      -      "output_word": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Output Word"
      -      },
      -      "overflow": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Overflow",
      -        "type": "array"
      -      },
      -      "pause": {
      -        "default": "FALSE",
      -        "title": "Pause",
      -        "type": "string"
      -      },
      -      "period_ms": {
      -        "anyOf": [
      -          {
      -            "maximum": 32767,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Period Ms"
      -      },
      -      "physical_input": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Physical Input"
      -      },
      -      "physical_output": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Physical Output"
      -      },
      -      "pointer": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Pointer"
      -      },
      -      "preset": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Preset"
      -      },
      -      "pulse": {
      -        "anyOf": [
      -          {
      -            "const": true,
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Pulse"
      -      },
      -      "pulse_count": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Pulse Count"
      -      },
      -      "push": {
      -        "default": "FALSE",
      -        "title": "Push",
      -        "type": "string"
      -      },
      -      "read_mode": {
      -        "default": "FALSE",
      -        "title": "Read Mode",
      -        "type": "string"
      -      },
      -      "reverse_output": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Reverse Output"
      -      },
      -      "rise_ms": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Rise Ms"
      -      },
      -      "sample_ms": {
      -        "anyOf": [
      -          {
      -            "maximum": 32767,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Sample Ms"
      -      },
      -      "source": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Source"
      -      },
      -      "source_b": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Source B"
      -      },
      -      "source_index": {
      -        "anyOf": [
      -          {
      -            "maximum": 15,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Source Index"
      -      },
      -      "start_register": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Start Register"
      -      },
      -      "target": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Target"
      -      },
      -      "text": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Text"
      -      },
      -      "timer": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Timer"
      -      },
      -      "trigger": {
      -        "default": "FALSE",
      -        "title": "Trigger",
      -        "type": "string"
      -      },
      -      "type": {
      -        "enum": [
      -          "pulse_output",
      -          "pwm",
      -          "speed_detect",
      -          "text_display",
      -          "file_register",
      -          "memory_pack_write",
      -          "memory_pack_read",
      -          "system_status",
      -          "encode_bits",
      -          "to_seven_segment",
      -          "ascii_literal",
      -          "hms_to_seconds",
      -          "seconds_to_hms",
      -          "ascii_to_hex",
      -          "hex_to_ascii",
      -          "bit_shift",
      -          "byte_distribute",
      -          "shift_left",
      -          "shift_right",
      -          "rotate_left",
      -          "rotate_right",
      -          "binary_to_gray",
      -          "gray_to_binary",
      -          "decode_bits",
      -          "bit_move",
      -          "nibble_move",
      -          "byte_move",
      -          "word_exchange",
      -          "byte_swap",
      -          "nibble_unite",
      -          "nibble_distribute",
      -          "byte_unite",
      -          "move_word",
      -          "move_inverse",
      -          "toggle_bit",
      -          "table_sort",
      -          "zone_write",
      -          "matrix_bit_shift",
      -          "matrix_bit_rotate",
      -          "matrix_bit_count",
      -          "matrix_and",
      -          "matrix_or",
      -          "matrix_xor",
      -          "matrix_xnr",
      -          "matrix_invert",
      -          "matrix_compare",
      -          "matrix_bit_read",
      -          "matrix_bit_write",
      -          "ascwr",
      -          "ramp",
      -          "ramp2",
      -          "reg_to_table",
      -          "table_to_reg",
      -          "table_to_table",
      -          "block_table_move",
      -          "table_swap",
      -          "register_table_search",
      -          "table_compare",
      -          "table_fill",
      -          "table_shift",
      -          "table_rotate",
      -          "queue",
      -          "stack",
      -          "block_compare"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "up": {
      -        "default": "FALSE",
      -        "title": "Up",
      -        "type": "string"
      -      },
      -      "upper": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Upper"
      -      },
      -      "value": {
      -        "anyOf": [
      -          {
      -            "maximum": 32767,
      -            "minimum": -32768,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Value"
      -      },
      -      "work": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Work"
      -      },
      -      "zero": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Zero",
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "ProcessFunction",
      -    "type": "object"
      -  },
      -  "RegisterOr": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "maximum": 255,
      -        "minimum": 0,
      -        "title": "Destination",
      -        "type": "integer"
      -      },
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "sa": {
      -        "maximum": 255,
      -        "minimum": 0,
      -        "title": "Sa",
      -        "type": "integer"
      -      },
      -      "sb": {
      -        "maximum": 255,
      -        "minimum": 0,
      -        "title": "Sb",
      -        "type": "integer"
      -      },
      -      "type": {
      -        "const": "register_or",
      -        "default": "register_or",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "sa",
      -      "sb",
      -      "destination"
      -    ],
      -    "title": "RegisterOr",
      -    "type": "object"
      -  },
      -  "RegisterStep": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "type": {
      -        "enum": [
      -          "increment",
      -          "decrement"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "destination"
      -    ],
      -    "title": "RegisterStep",
      -    "type": "object"
      -  },
      -  "SampleCall": {
      -    "additionalProperties": false,
      -    "description": "Forensic anchor only: unresolved relocation bytes, generation rejected.",
      -    "properties": {
      -      "target": {
      -        "default": "1",
      -        "enum": [
      -          "1",
      -          "8"
      -        ],
      -        "title": "Target",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "call",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "SampleCall",
      -    "type": "object"
      -  },
      -  "SampleFlow": {
      -    "additionalProperties": false,
      -    "description": "Alphanumeric labels; JMP retains only the observed target records.",
      -    "properties": {
      -      "target": {
      -        "default": "1",
      -        "maxLength": 6,
      -        "minLength": 1,
      -        "pattern": "^[A-Za-z0-9]{1,6}$",
      -        "title": "Target",
      -        "type": "string"
      -      },
      -      "type": {
      -        "enum": [
      -          "lbl",
      -          "jmp"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "SampleFlow",
      -    "type": "object"
      -  },
      -  "Step": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "contact": {
      -        "$ref": "#/$defs/Contact"
      -      },
      -      "op": {
      -        "enum": [
      -          "load",
      -          "and",
      -          "or"
      -        ],
      -        "title": "Op",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "op",
      -      "contact"
      -    ],
      -    "title": "Step",
      -    "type": "object"
      -  },
      -  "SumWords": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "count": {
      -        "maximum": 511,
      -        "minimum": 1,
      -        "title": "Count",
      -        "type": "integer"
      -      },
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "source": {
      -        "title": "Source",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "sum",
      -        "default": "sum",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "source",
      -      "count",
      -      "destination"
      -    ],
      -    "title": "SumWords",
      -    "type": "object"
      -  },
      -  "TemperatureControl": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "alarm": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Alarm",
      -        "type": "array"
      -      },
      -      "derivative": {
      -        "title": "Derivative",
      -        "type": "string"
      -      },
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "error": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Error",
      -        "type": "array"
      -      },
      -      "heat_cool": {
      -        "default": "TRUE",
      -        "title": "Heat Cool",
      -        "type": "string"
      -      },
      -      "integral": {
      -        "title": "Integral",
      -        "type": "string"
      -      },
      -      "offset": {
      -        "title": "Offset",
      -        "type": "string"
      -      },
      -      "output": {
      -        "title": "Output",
      -        "type": "string"
      -      },
      -      "proportional": {
      -        "title": "Proportional",
      -        "type": "string"
      -      },
      -      "setpoint": {
      -        "title": "Setpoint",
      -        "type": "string"
      -      },
      -      "start": {
      -        "maximum": 31,
      -        "minimum": 0,
      -        "title": "Start",
      -        "type": "integer"
      -      },
      -      "type": {
      -        "const": "tpctl",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "work": {
      -        "title": "Work",
      -        "type": "string"
      -      },
      -      "zones": {
      -        "maximum": 32,
      -        "minimum": 1,
      -        "title": "Zones",
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "output",
      -      "start",
      -      "zones",
      -      "setpoint",
      -      "offset",
      -      "proportional",
      -      "integral",
      -      "derivative",
      -      "destination",
      -      "work"
      -    ],
      -    "title": "TemperatureControl",
      -    "type": "object"
      -  },
      -  "Timer": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "address": {
      -        "maximum": 65535,
      -        "minimum": 0,
      -        "title": "Address",
      -        "type": "integer"
      -      },
      -      "enable": {
      -        "default": "always_on",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "preset": {
      -        "maximum": 65535,
      -        "minimum": 0,
      -        "title": "Preset",
      -        "type": "integer"
      -      },
      -      "time_base": {
      -        "const": "0.01s",
      -        "default": "0.01s",
      -        "title": "Time Base",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "timer",
      -        "default": "timer",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "address",
      -      "preset"
      -    ],
      -    "title": "Timer",
      -    "type": "object"
      -  },
      -  "UpDownCounter": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "clear": {
      -        "title": "Clear",
      -        "type": "string"
      -      },
      -      "cv": {
      -        "title": "Cv",
      -        "type": "string"
      -      },
      -      "preset": {
      -        "maximum": 32767,
      -        "minimum": 0,
      -        "title": "Preset",
      -        "type": "integer"
      -      },
      -      "pulse": {
      -        "title": "Pulse",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "udctr",
      -        "default": "udctr",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "up": {
      -        "title": "Up",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "cv",
      -      "preset",
      -      "pulse",
      -      "up",
      -      "clear"
      -    ],
      -    "title": "UpDownCounter",
      -    "type": "object"
      -  },
      -  "Watchdog": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "setting": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              50,
      -              60,
      -              70,
      -              80,
      -              90,
      -              100,
      -              110,
      -              120
      -            ],
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Setting"
      -      },
      -      "type": {
      -        "enum": [
      -          "wdt",
      -          "rswdt"
      -        ],
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "Watchdog",
      -    "type": "object"
      -  },
      -  "WordConversion": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "destination": {
      -        "title": "Destination",
      -        "type": "string"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "operation": {
      -        "enum": [
      -          "to_bcd",
      -          "to_bin"
      -        ],
      -        "title": "Operation",
      -        "type": "string"
      -      },
      -      "source": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "maximum": 9999,
      -            "minimum": 0,
      -            "type": "integer"
      -          }
      -        ],
      -        "title": "Source"
      -      },
      -      "type": {
      -        "const": "word_conversion",
      -        "default": "word_conversion",
      -        "title": "Type",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "operation",
      -      "source",
      -      "destination"
      -    ],
      -    "title": "WordConversion",
      -    "type": "object"
      -  },
      -  "ZoneCompare": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "above": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Above",
      -        "type": "array"
      -      },
      -      "below": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Below",
      -        "type": "array"
      -      },
      -      "enable": {
      -        "default": "TRUE",
      -        "title": "Enable",
      -        "type": "string"
      -      },
      -      "lower": {
      -        "maximum": 32767,
      -        "minimum": -32768,
      -        "title": "Lower",
      -        "type": "integer"
      -      },
      -      "source": {
      -        "title": "Source",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "zone_compare",
      -        "default": "zone_compare",
      -        "title": "Type",
      -        "type": "string"
      -      },
      -      "upper": {
      -        "maximum": 32767,
      -        "minimum": -32768,
      -        "title": "Upper",
      -        "type": "integer"
      -      },
      -      "within": {
      -        "items": {
      -          "$ref": "#/$defs/Coil"
      -        },
      -        "maxItems": 32,
      -        "title": "Within",
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "source",
      -      "upper",
      -      "lower"
      -    ],
      -    "title": "ZoneCompare",
      -    "type": "object"
      -  }
      -}
    • addedInput schema / properties / initial / description
      Added value: +"Optional initial Boolean or integer values keyed by modeled device."
    • addedInput schema / properties / inputs / description
      Added value: +"Ordered scan inputs; each object maps X device names to Boolean values."
    • removedInput schema / properties / ladder / $ref
      Removed value: -"#/$defs/Ladder"
    • addedInput schema / properties / ladder / additionalProperties
      Added value: +true
    • addedInput schema / properties / ladder / description
      Added value: +"Caller-supplied Ladder IR object for the bounded model; obtain its full schema from get_design_guide(detail=true)."
    • addedInput schema / properties / ladder / title
      Added value: +"Ladder"
    • addedInput schema / properties / ladder / type
      Added value: +"object"
    • changedInput schema / properties / scan_ms / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / scan_ms / description
      Added value: +"Milliseconds per scan; required when the Ladder uses timers, counters or FUN87/88/89."
  2. Changed52 schema fields changedv1.0.0
    • addedInput schema / $defs / AccumulativeTimer
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "cv": {
      +      "title": "Cv",
      +      "type": "string"
      +    },
      +    "done": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Done",
      +      "type": "array"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "not_done": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Not Done",
      +      "type": "array"
      +    },
      +    "pv": {
      +      "title": "Pv",
      +      "type": "string"
      +    },
      +    "timing": {
      +      "default": "TRUE",
      +      "title": "Timing",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "accumulative_timer",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "unit_ms": {
      +      "enum": [
      +        10,
      +        100,
      +        1000
      +      ],
      +      "title": "Unit Ms",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "unit_ms",
      +    "cv",
      +    "pv"
      +  ],
      +  "title": "AccumulativeTimer",
      +  "type": "object"
      +}
    • addedInput schema / $defs / AnalogConversion
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "maximum": 64,
      +      "minimum": 1,
      +      "title": "Count",
      +      "type": "integer"
      +    },
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "overflow": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Overflow",
      +      "type": "array"
      +    },
      +    "polarity": {
      +      "anyOf": [
      +        {
      +          "const": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Polarity"
      +    },
      +    "selector": {
      +      "default": "FALSE",
      +      "title": "Selector",
      +      "type": "string"
      +    },
      +    "source": {
      +      "title": "Source",
      +      "type": "string"
      +    },
      +    "table_length": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Table Length"
      +    },
      +    "type": {
      +      "enum": [
      +        "adcnv",
      +        "mlc"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "x_table": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "X Table"
      +    },
      +    "y_table": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Y Table"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "source",
      +    "count",
      +    "destination"
      +  ],
      +  "title": "AnalogConversion",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Arithmetic
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "test7: 16-bit register Sa, nonnegative immediate Sb, direct destination.",
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "operation": {
      +      "enum": [
      +        "add",
      +        "sub",
      +        "mul",
      +        "div"
      +      ],
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "sa": {
      +      "title": "Sa",
      +      "type": "string"
      +    },
      +    "sb": {
      +      "maximum": 32767,
      +      "minimum": 0,
      +      "title": "Sb",
      +      "type": "integer"
      +    },
      +    "type": {
      +      "const": "arithmetic",
      +      "default": "arithmetic",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "unsigned_when": {
      +      "default": "FALSE",
      +      "title": "Unsigned When",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "sa",
      +    "sb",
      +    "destination"
      +  ],
      +  "title": "Arithmetic",
      +  "type": "object"
      +}
    • addedInput schema / $defs / BitAccess
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "bit": {
      +      "maximum": 15,
      +      "minimum": 0,
      +      "title": "Bit",
      +      "type": "integer"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "input_bit": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Input Bit"
      +    },
      +    "output": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Output",
      +      "type": "array"
      +    },
      +    "type": {
      +      "enum": [
      +        "bitrd",
      +        "bitwr"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "word": {
      +      "title": "Word",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "word",
      +    "bit"
      +  ],
      +  "title": "BitAccess",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Bitwise
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "operation": {
      +      "enum": [
      +        "and",
      +        "or"
      +      ],
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "sa": {
      +      "title": "Sa",
      +      "type": "string"
      +    },
      +    "sb": {
      +      "title": "Sb",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "bitwise",
      +      "default": "bitwise",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "sa",
      +    "sb",
      +    "destination"
      +  ],
      +  "title": "Bitwise",
      +  "type": "object"
      +}
    • addedInput schema / $defs / BreakLoop
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "break",
      +      "default": "break",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "title": "BreakLoop",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Coil / properties / inverted
      Added value: +{
      +  "default": false,
      +  "title": "Inverted",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / Coil / properties / mode
      Added value: +{
      +  "default": "normal",
      +  "enum": [
      +    "normal",
      +    "set",
      +    "reset"
      +  ],
      +  "title": "Mode",
      +  "type": "string"
      +}
    • addedInput schema / $defs / Compare
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "equal": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Equal",
      +      "type": "array"
      +    },
      +    "greater": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Greater",
      +      "type": "array"
      +    },
      +    "less": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Less",
      +      "type": "array"
      +    },
      +    "sa": {
      +      "title": "Sa",
      +      "type": "string"
      +    },
      +    "sb": {
      +      "title": "Sb",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "compare",
      +      "default": "compare",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "unsigned_when": {
      +      "default": "FALSE",
      +      "title": "Unsigned When",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "sa",
      +    "sb"
      +  ],
      +  "title": "Compare",
      +  "type": "object"
      +}
    • addedInput schema / $defs / ComparisonContact
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "operation": {
      +      "enum": [
      +        "eq",
      +        "gt",
      +        "lt",
      +        "ne",
      +        "ge",
      +        "le"
      +      ],
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "sa": {
      +      "title": "Sa",
      +      "type": "string"
      +    },
      +    "sb": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "maximum": 32767,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      ],
      +      "title": "Sb"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "sa",
      +    "sb"
      +  ],
      +  "title": "ComparisonContact",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Counter
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "address": {
      +      "maximum": 65535,
      +      "minimum": 0,
      +      "title": "Address",
      +      "type": "integer"
      +    },
      +    "clear": {
      +      "default": "always_on",
      +      "title": "Clear",
      +      "type": "string"
      +    },
      +    "preset": {
      +      "maximum": 65535,
      +      "minimum": 0,
      +      "title": "Preset",
      +      "type": "integer"
      +    },
      +    "pulse": {
      +      "default": "always_on",
      +      "title": "Pulse",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "counter",
      +      "default": "counter",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "address",
      +    "preset"
      +  ],
      +  "title": "Counter",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Differential
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "pattern": "^[YM](0|[1-9][0-9]{0,2})$",
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "trigger": {
      +      "default": "TRUE",
      +      "title": "Trigger",
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "difu",
      +        "difd"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "destination"
      +  ],
      +  "title": "Differential",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Divide48
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "encoding": {
      +      "default": "two_inputs",
      +      "enum": [
      +        "two_inputs",
      +        "single_input"
      +      ],
      +      "title": "Encoding",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "sa": {
      +      "title": "Sa",
      +      "type": "string"
      +    },
      +    "sb": {
      +      "title": "Sb",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "div48",
      +      "default": "div48",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "unsigned_when": {
      +      "default": "FALSE",
      +      "title": "Unsigned When",
      +      "type": "string"
      +    },
      +    "zero": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Zero",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "sa",
      +    "sb",
      +    "destination"
      +  ],
      +  "title": "Divide48",
      +  "type": "object"
      +}
    • addedInput schema / $defs / EdgeContact
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "input": {
      +      "pattern": "^X(0|[1-9][0-9]{0,2})$",
      +      "title": "Input",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "rising",
      +        "falling"
      +      ],
      +      "title": "Kind",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "input"
      +  ],
      +  "title": "EdgeContact",
      +  "type": "object"
      +}
    • addedInput schema / $defs / ExclusiveLogic
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "FUN35/36 word logic; sampled T1 is a numeric value, not a T contact.",
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "operation": {
      +      "enum": [
      +        "xor",
      +        "xnr"
      +      ],
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "sa": {
      +      "title": "Sa",
      +      "type": "string"
      +    },
      +    "sb": {
      +      "title": "Sb",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "exclusive_logic",
      +      "default": "exclusive_logic",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "sa",
      +    "sb",
      +    "destination"
      +  ],
      +  "title": "ExclusiveLogic",
      +  "type": "object"
      +}
    • addedInput schema / $defs / FloatCompare
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "equal": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Equal",
      +      "type": "array"
      +    },
      +    "greater": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Greater",
      +      "type": "array"
      +    },
      +    "less": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Less",
      +      "type": "array"
      +    },
      +    "sa": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "title": "Sa"
      +    },
      +    "sb": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "title": "Sb"
      +    },
      +    "type": {
      +      "const": "float_compare",
      +      "default": "float_compare",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "sa",
      +    "sb"
      +  ],
      +  "title": "FloatCompare",
      +  "type": "object"
      +}
    • addedInput schema / $defs / FloatOperation
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "operation": {
      +      "enum": [
      +        "i_to_f",
      +        "f_to_i",
      +        "add",
      +        "sub",
      +        "mul",
      +        "div",
      +        "sqrt",
      +        "sin",
      +        "cos",
      +        "tan",
      +        "neg",
      +        "abs",
      +        "ln",
      +        "exp",
      +        "log",
      +        "pow",
      +        "asin",
      +        "acos",
      +        "atan"
      +      ],
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "sa": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Sa"
      +    },
      +    "sb": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Sb"
      +    },
      +    "type": {
      +      "const": "float_operation",
      +      "default": "float_operation",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "destination"
      +  ],
      +  "title": "FloatOperation",
      +  "type": "object"
      +}
    • addedInput schema / $defs / FloatZoneCompare
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "above": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Above",
      +      "type": "array"
      +    },
      +    "below": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Below",
      +      "type": "array"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "lower": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "title": "Lower"
      +    },
      +    "source": {
      +      "title": "Source",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "float_zone_compare",
      +      "default": "float_zone_compare",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "upper": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "title": "Upper"
      +    },
      +    "within": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Within",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "upper",
      +    "lower"
      +  ],
      +  "title": "FloatZoneCompare",
      +  "type": "object"
      +}
    • addedInput schema / $defs / ForLoop
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "maximum": 16383,
      +      "minimum": 1,
      +      "title": "Count",
      +      "type": "integer"
      +    },
      +    "type": {
      +      "const": "for",
      +      "default": "for",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "count"
      +  ],
      +  "title": "ForLoop",
      +  "type": "object"
      +}
    • addedInput schema / $defs / HighSpeedCounter
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Exact HSC0 read / double-word constant-zero PV write anchors only.",
      +  "properties": {
      +    "counter": {
      +      "const": "HSC0",
      +      "default": "HSC0",
      +      "title": "Counter",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "const": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source"
      +    },
      +    "target": {
      +      "anyOf": [
      +        {
      +          "const": "PV",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Target"
      +    },
      +    "type": {
      +      "enum": [
      +        "hsctr",
      +        "hsctw"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "title": "HighSpeedCounter",
      +  "type": "object"
      +}
    • addedInput schema / $defs / ImmediateIO
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "maximum": 36,
      +      "minimum": 1,
      +      "title": "Count",
      +      "type": "integer"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "start": {
      +      "title": "Start",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "imdio",
      +      "default": "imdio",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "start",
      +    "count"
      +  ],
      +  "title": "ImmediateIO",
      +  "type": "object"
      +}
    • addedInput schema / $defs / IntegerFunction
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "maximum": 256,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Count"
      +    },
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "mode": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            0,
      +            1
      +          ],
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Mode"
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source"
      +    },
      +    "type": {
      +      "enum": [
      +        "mean",
      +        "sqrt",
      +        "neg",
      +        "abs",
      +        "ext",
      +        "crc16"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "zero": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Zero",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "destination"
      +  ],
      +  "title": "IntegerFunction",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Ladder / properties / profile
      Added value: +{
      +  "default": "FBs-20MC",
      +  "enum": [
      +    "FBs-32MC-test30",
      +    "FBs-32MN-test29",
      +    "FBs-40MC-test27",
      +    "HB1-32M-test23",
      +    "FB-28MA-test22",
      +    "FBe-40MC-test21",
      +    "FBe-20MA-test19",
      +    "FBn-26MC-test17",
      +    "FBs-60MC-test16",
      +    "FBs-20MC",
      +    "FBs-24MA",
      +    "FBs-24MA-test7",
      +    "FBs-32MA-test11",
      +    "FBs-40MA-test12",
      +    "FBs-44MN-test13"
      +  ],
      +  "title": "Profile",
      +  "type": "string"
      +}
    • addedInput schema / $defs / Ladder / properties / symbols
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "maxProperties": 512,
      +  "title": "Symbols",
      +  "type": "object"
      +}
    • addedInput schema / $defs / LinearConversion
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "FUN33 LCNV. Md/L variations are inferred; pulse/indirect forms unsupported.",
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "length": {
      +      "default": 1,
      +      "maximum": 64,
      +      "minimum": 1,
      +      "title": "Length",
      +      "type": "integer"
      +    },
      +    "mode": {
      +      "default": 0,
      +      "maximum": 3,
      +      "minimum": 0,
      +      "title": "Mode",
      +      "type": "integer"
      +    },
      +    "source": {
      +      "title": "Source",
      +      "type": "string"
      +    },
      +    "table": {
      +      "title": "Table",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "lcnv",
      +      "default": "lcnv",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "table",
      +    "destination"
      +  ],
      +  "title": "LinearConversion",
      +  "type": "object"
      +}
    • addedInput schema / $defs / MasterControl
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "number": {
      +      "maximum": 127,
      +      "minimum": 0,
      +      "title": "Number",
      +      "type": "integer"
      +    },
      +    "type": {
      +      "const": "mc",
      +      "default": "mc",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "number"
      +  ],
      +  "title": "MasterControl",
      +  "type": "object"
      +}
    • addedInput schema / $defs / MasterEnd
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "number": {
      +      "maximum": 127,
      +      "minimum": 0,
      +      "title": "Number",
      +      "type": "integer"
      +    },
      +    "type": {
      +      "const": "mce",
      +      "default": "mce",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "number"
      +  ],
      +  "title": "MasterEnd",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Network / properties / action
      Added value: +{
      +  "anyOf": [
      +    {
      +      "discriminator": {
      +        "mapping": {
      +          "7sgdl": "#/$defs/PeripheralIO",
      +          "abs": "#/$defs/IntegerFunction",
      +          "accumulative_timer": "#/$defs/AccumulativeTimer",
      +          "adcnv": "#/$defs/AnalogConversion",
      +          "arithmetic": "#/$defs/Arithmetic",
      +          "ascii_literal": "#/$defs/ProcessFunction",
      +          "ascii_to_hex": "#/$defs/ProcessFunction",
      +          "ascwr": "#/$defs/ProcessFunction",
      +          "binary_to_gray": "#/$defs/ProcessFunction",
      +          "bit_move": "#/$defs/ProcessFunction",
      +          "bit_shift": "#/$defs/ProcessFunction",
      +          "bitrd": "#/$defs/BitAccess",
      +          "bitwise": "#/$defs/Bitwise",
      +          "bitwr": "#/$defs/BitAccess",
      +          "block_compare": "#/$defs/ProcessFunction",
      +          "block_table_move": "#/$defs/ProcessFunction",
      +          "break": "#/$defs/BreakLoop",
      +          "byte_distribute": "#/$defs/ProcessFunction",
      +          "byte_move": "#/$defs/ProcessFunction",
      +          "byte_swap": "#/$defs/ProcessFunction",
      +          "byte_unite": "#/$defs/ProcessFunction",
      +          "call": "#/$defs/SampleCall",
      +          "compare": "#/$defs/Compare",
      +          "crc16": "#/$defs/IntegerFunction",
      +          "decode_bits": "#/$defs/ProcessFunction",
      +          "decrement": "#/$defs/RegisterStep",
      +          "difd": "#/$defs/Differential",
      +          "difu": "#/$defs/Differential",
      +          "div48": "#/$defs/Divide48",
      +          "dsw": "#/$defs/PeripheralIO",
      +          "encode_bits": "#/$defs/ProcessFunction",
      +          "exclusive_logic": "#/$defs/ExclusiveLogic",
      +          "ext": "#/$defs/IntegerFunction",
      +          "file_register": "#/$defs/ProcessFunction",
      +          "float_compare": "#/$defs/FloatCompare",
      +          "float_operation": "#/$defs/FloatOperation",
      +          "float_zone_compare": "#/$defs/FloatZoneCompare",
      +          "for": "#/$defs/ForLoop",
      +          "gray_to_binary": "#/$defs/ProcessFunction",
      +          "hex_to_ascii": "#/$defs/ProcessFunction",
      +          "hkey": "#/$defs/PeripheralIO",
      +          "hms_to_seconds": "#/$defs/ProcessFunction",
      +          "hsctr": "#/$defs/HighSpeedCounter",
      +          "hsctw": "#/$defs/HighSpeedCounter",
      +          "imdio": "#/$defs/ImmediateIO",
      +          "increment": "#/$defs/RegisterStep",
      +          "jmp": "#/$defs/SampleFlow",
      +          "lbl": "#/$defs/SampleFlow",
      +          "lcnv": "#/$defs/LinearConversion",
      +          "matrix_and": "#/$defs/ProcessFunction",
      +          "matrix_bit_count": "#/$defs/ProcessFunction",
      +          "matrix_bit_read": "#/$defs/ProcessFunction",
      +          "matrix_bit_rotate": "#/$defs/ProcessFunction",
      +          "matrix_bit_shift": "#/$defs/ProcessFunction",
      +          "matrix_bit_write": "#/$defs/ProcessFunction",
      +          "matrix_compare": "#/$defs/ProcessFunction",
      +          "matrix_invert": "#/$defs/ProcessFunction",
      +          "matrix_or": "#/$defs/ProcessFunction",
      +          "matrix_xnr": "#/$defs/ProcessFunction",
      +          "matrix_xor": "#/$defs/ProcessFunction",
      +          "mc": "#/$defs/MasterControl",
      +          "mce": "#/$defs/MasterEnd",
      +          "mean": "#/$defs/IntegerFunction",
      +          "memory_pack_read": "#/$defs/ProcessFunction",
      +          "memory_pack_write": "#/$defs/ProcessFunction",
      +          "mlc": "#/$defs/AnalogConversion",
      +          "move_inverse": "#/$defs/ProcessFunction",
      +          "move_word": "#/$defs/ProcessFunction",
      +          "muxi": "#/$defs/PeripheralIO",
      +          "neg": "#/$defs/IntegerFunction",
      +          "next": "#/$defs/NextLoop",
      +          "nibble_distribute": "#/$defs/ProcessFunction",
      +          "nibble_move": "#/$defs/ProcessFunction",
      +          "nibble_unite": "#/$defs/ProcessFunction",
      +          "pid": "#/$defs/PID",
      +          "pulse_output": "#/$defs/ProcessFunction",
      +          "pwm": "#/$defs/ProcessFunction",
      +          "queue": "#/$defs/ProcessFunction",
      +          "ramp": "#/$defs/ProcessFunction",
      +          "ramp2": "#/$defs/ProcessFunction",
      +          "reg_to_table": "#/$defs/ProcessFunction",
      +          "register_or": "#/$defs/RegisterOr",
      +          "register_table_search": "#/$defs/ProcessFunction",
      +          "rotate_left": "#/$defs/ProcessFunction",
      +          "rotate_right": "#/$defs/ProcessFunction",
      +          "rswdt": "#/$defs/Watchdog",
      +          "seconds_to_hms": "#/$defs/ProcessFunction",
      +          "shift_left": "#/$defs/ProcessFunction",
      +          "shift_right": "#/$defs/ProcessFunction",
      +          "speed_detect": "#/$defs/ProcessFunction",
      +          "sqrt": "#/$defs/IntegerFunction",
      +          "stack": "#/$defs/ProcessFunction",
      +          "sum": "#/$defs/SumWords",
      +          "system_status": "#/$defs/ProcessFunction",
      +          "table_compare": "#/$defs/ProcessFunction",
      +          "table_fill": "#/$defs/ProcessFunction",
      +          "table_rotate": "#/$defs/ProcessFunction",
      +          "table_shift": "#/$defs/ProcessFunction",
      +          "table_sort": "#/$defs/ProcessFunction",
      +          "table_swap": "#/$defs/ProcessFunction",
      +          "table_to_reg": "#/$defs/ProcessFunction",
      +          "table_to_table": "#/$defs/ProcessFunction",
      +          "text_display": "#/$defs/ProcessFunction",
      +          "tkey": "#/$defs/PeripheralIO",
      +          "to_seven_segment": "#/$defs/ProcessFunction",
      +          "toggle_bit": "#/$defs/ProcessFunction",
      +          "tpctl": "#/$defs/TemperatureControl",
      +          "udctr": "#/$defs/UpDownCounter",
      +          "wdt": "#/$defs/Watchdog",
      +          "word_conversion": "#/$defs/WordConversion",
      +          "word_exchange": "#/$defs/ProcessFunction",
      +          "zone_compare": "#/$defs/ZoneCompare",
      +          "zone_write": "#/$defs/ProcessFunction"
      +        },
      +        "propertyName": "type"
      +      },
      +      "oneOf": [
      +        {
      +          "$ref": "#/$defs/RegisterOr"
      +        },
      +        {
      +          "$ref": "#/$defs/ForLoop"
      +        },
      +        {
      +          "$ref": "#/$defs/NextLoop"
      +        },
      +        {
      +          "$ref": "#/$defs/BreakLoop"
      +        },
      +        {
      +          "$ref": "#/$defs/LinearConversion"
      +        },
      +        {
      +          "$ref": "#/$defs/Arithmetic"
      +        },
      +        {
      +          "$ref": "#/$defs/RegisterStep"
      +        },
      +        {
      +          "$ref": "#/$defs/Bitwise"
      +        },
      +        {
      +          "$ref": "#/$defs/ExclusiveLogic"
      +        },
      +        {
      +          "$ref": "#/$defs/AnalogConversion"
      +        },
      +        {
      +          "$ref": "#/$defs/BitAccess"
      +        },
      +        {
      +          "$ref": "#/$defs/SampleFlow"
      +        },
      +        {
      +          "$ref": "#/$defs/AccumulativeTimer"
      +        },
      +        {
      +          "$ref": "#/$defs/TemperatureControl"
      +        },
      +        {
      +          "$ref": "#/$defs/SampleCall"
      +        },
      +        {
      +          "$ref": "#/$defs/ProcessFunction"
      +        },
      +        {
      +          "$ref": "#/$defs/IntegerFunction"
      +        },
      +        {
      +          "$ref": "#/$defs/Watchdog"
      +        },
      +        {
      +          "$ref": "#/$defs/HighSpeedCounter"
      +        },
      +        {
      +          "$ref": "#/$defs/Divide48"
      +        },
      +        {
      +          "$ref": "#/$defs/SumWords"
      +        },
      +        {
      +          "$ref": "#/$defs/PID"
      +        },
      +        {
      +          "$ref": "#/$defs/PeripheralIO"
      +        },
      +        {
      +          "$ref": "#/$defs/ImmediateIO"
      +        },
      +        {
      +          "$ref": "#/$defs/FloatOperation"
      +        },
      +        {
      +          "$ref": "#/$defs/FloatCompare"
      +        },
      +        {
      +          "$ref": "#/$defs/FloatZoneCompare"
      +        },
      +        {
      +          "$ref": "#/$defs/WordConversion"
      +        },
      +        {
      +          "$ref": "#/$defs/ZoneCompare"
      +        },
      +        {
      +          "$ref": "#/$defs/Compare"
      +        },
      +        {
      +          "$ref": "#/$defs/MasterControl"
      +        },
      +        {
      +          "$ref": "#/$defs/MasterEnd"
      +        },
      +        {
      +          "$ref": "#/$defs/Differential"
      +        },
      +        {
      +          "$ref": "#/$defs/UpDownCounter"
      +        }
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Action"
      +}
    • addedInput schema / $defs / Network / properties / block
      Added value: +{
      +  "anyOf": [
      +    {
      +      "discriminator": {
      +        "mapping": {
      +          "counter": "#/$defs/Counter",
      +          "timer": "#/$defs/Timer"
      +        },
      +        "propertyName": "type"
      +      },
      +      "oneOf": [
      +        {
      +          "$ref": "#/$defs/Timer"
      +        },
      +        {
      +          "$ref": "#/$defs/Counter"
      +        }
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Block"
      +}
    • addedInput schema / $defs / Network / properties / branch_encoding
      Added value: +{
      +  "default": "default",
      +  "enum": [
      +    "default",
      +    "test9_or"
      +  ],
      +  "title": "Branch Encoding",
      +  "type": "string"
      +}
    • addedInput schema / $defs / Network / properties / comment
      Added value: +{
      +  "default": "",
      +  "maxLength": 1000,
      +  "title": "Comment",
      +  "type": "string"
      +}
    • addedInput schema / $defs / Network / properties / comparison_chain
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ComparisonContact"
      +  },
      +  "maxItems": 32,
      +  "title": "Comparison Chain",
      +  "type": "array"
      +}
    • addedInput schema / $defs / Network / properties / condition
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Condition"
      +}
    • addedInput schema / $defs / Network / properties / direct_rail
      Added value: +{
      +  "default": false,
      +  "title": "Direct Rail",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / Network / properties / edge
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/EdgeContact"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / $defs / NextLoop
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "type": {
      +      "const": "next",
      +      "default": "next",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "title": "NextLoop",
      +  "type": "object"
      +}
    • addedInput schema / $defs / PID
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "FUN30: enable denotes A/M, not an execution enable pin. Ts is in 10 ms units.",
      +  "properties": {
      +    "bumpless": {
      +      "default": "FALSE",
      +      "title": "Bumpless",
      +      "type": "string"
      +    },
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "direction": {
      +      "default": "TRUE",
      +      "title": "Direction",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "high": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "High",
      +      "type": "array"
      +    },
      +    "interval": {
      +      "maximum": 3000,
      +      "minimum": 1,
      +      "title": "Interval",
      +      "type": "integer"
      +    },
      +    "low": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Low",
      +      "type": "array"
      +    },
      +    "parameters": {
      +      "title": "Parameters",
      +      "type": "string"
      +    },
      +    "setting": {
      +      "title": "Setting",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "pid",
      +      "default": "pid",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "work": {
      +      "title": "Work",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "interval",
      +    "setting",
      +    "destination",
      +    "parameters",
      +    "work"
      +  ],
      +  "title": "PID",
      +  "type": "object"
      +}
    • addedInput schema / $defs / PeripheralIO
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Destination"
      +    },
      +    "done": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Done",
      +      "type": "array"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "function_pressed": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Function Pressed",
      +      "type": "array"
      +    },
      +    "input": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Input"
      +    },
      +    "key_start": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Key Start"
      +    },
      +    "mode": {
      +      "anyOf": [
      +        {
      +          "maximum": 3,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Mode"
      +    },
      +    "output": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Output"
      +    },
      +    "pressed": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Pressed",
      +      "type": "array"
      +    },
      +    "rows": {
      +      "anyOf": [
      +        {
      +          "maximum": 8,
      +          "minimum": 2,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Rows"
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source"
      +    },
      +    "type": {
      +      "enum": [
      +        "tkey",
      +        "hkey",
      +        "dsw",
      +        "7sgdl",
      +        "muxi"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "work": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Work"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "title": "PeripheralIO",
      +  "type": "object"
      +}
    • addedInput schema / $defs / ProcessFunction
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Direct-register forms sampled in test20/21; not arbitrary instruction modes.",
      +  "properties": {
      +    "abort": {
      +      "default": "FALSE",
      +      "title": "Abort",
      +      "type": "string"
      +    },
      +    "accelerating": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Accelerating",
      +      "type": "array"
      +    },
      +    "active": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Active",
      +      "type": "array"
      +    },
      +    "ascending": {
      +      "default": "FALSE",
      +      "title": "Ascending",
      +      "type": "string"
      +    },
      +    "at_lower": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "At Lower",
      +      "type": "array"
      +    },
      +    "at_upper": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "At Upper",
      +      "type": "array"
      +    },
      +    "bank": {
      +      "anyOf": [
      +        {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Bank"
      +    },
      +    "bit_destination": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Bit Destination"
      +    },
      +    "bit_length": {
      +      "anyOf": [
      +        {
      +          "maximum": 8,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Bit Length"
      +    },
      +    "clear": {
      +      "default": "FALSE",
      +      "title": "Clear",
      +      "type": "string"
      +    },
      +    "count": {
      +      "anyOf": [
      +        {
      +          "maximum": 511,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Count"
      +    },
      +    "decelerating": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Decelerating",
      +      "type": "array"
      +    },
      +    "destination": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Destination"
      +    },
      +    "destination_index": {
      +      "anyOf": [
      +        {
      +          "maximum": 15,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Destination Index"
      +    },
      +    "different": {
      +      "default": "FALSE",
      +      "title": "Different",
      +      "type": "string"
      +    },
      +    "display_number": {
      +      "anyOf": [
      +        {
      +          "maximum": 65535,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Display Number"
      +    },
      +    "display_off": {
      +      "default": "FALSE",
      +      "title": "Display Off",
      +      "type": "string"
      +    },
      +    "display_on": {
      +      "default": "FALSE",
      +      "title": "Display On",
      +      "type": "string"
      +    },
      +    "done": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Done",
      +      "type": "array"
      +    },
      +    "empty_flag": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Empty Flag",
      +      "type": "array"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "fall_ms": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Fall Ms"
      +    },
      +    "file_base": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "File Base"
      +    },
      +    "forward_output": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Forward Output"
      +    },
      +    "found": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Found",
      +      "type": "array"
      +    },
      +    "frequency": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Frequency"
      +    },
      +    "from_head": {
      +      "default": "FALSE",
      +      "title": "From Head",
      +      "type": "string"
      +    },
      +    "full": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Full",
      +      "type": "array"
      +    },
      +    "group": {
      +      "anyOf": [
      +        {
      +          "maximum": 3,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Group"
      +    },
      +    "high_priority": {
      +      "default": "FALSE",
      +      "title": "High Priority",
      +      "type": "string"
      +    },
      +    "increment": {
      +      "default": "FALSE",
      +      "title": "Increment",
      +      "type": "string"
      +    },
      +    "input_bit": {
      +      "default": "FALSE",
      +      "title": "Input Bit",
      +      "type": "string"
      +    },
      +    "input_word": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Input Word"
      +    },
      +    "left": {
      +      "default": "FALSE",
      +      "title": "Left",
      +      "type": "string"
      +    },
      +    "length": {
      +      "anyOf": [
      +        {
      +          "maximum": 2048,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Length"
      +    },
      +    "length_register": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Length Register"
      +    },
      +    "lower": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Lower"
      +    },
      +    "maximum": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Maximum"
      +    },
      +    "mode": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            0,
      +            1
      +          ],
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Mode"
      +    },
      +    "offset": {
      +      "anyOf": [
      +        {
      +          "maximum": 32510,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Offset"
      +    },
      +    "on_ms": {
      +      "anyOf": [
      +        {
      +          "maximum": 32767,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "On Ms"
      +    },
      +    "ones": {
      +      "default": "FALSE",
      +      "title": "Ones",
      +      "type": "string"
      +    },
      +    "output": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Output",
      +      "type": "array"
      +    },
      +    "output_word": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Output Word"
      +    },
      +    "overflow": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Overflow",
      +      "type": "array"
      +    },
      +    "pause": {
      +      "default": "FALSE",
      +      "title": "Pause",
      +      "type": "string"
      +    },
      +    "period_ms": {
      +      "anyOf": [
      +        {
      +          "maximum": 32767,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Period Ms"
      +    },
      +    "physical_input": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Physical Input"
      +    },
      +    "physical_output": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Physical Output"
      +    },
      +    "pointer": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Pointer"
      +    },
      +    "preset": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Preset"
      +    },
      +    "pulse": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Pulse"
      +    },
      +    "pulse_count": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Pulse Count"
      +    },
      +    "push": {
      +      "default": "FALSE",
      +      "title": "Push",
      +      "type": "string"
      +    },
      +    "read_mode": {
      +      "default": "FALSE",
      +      "title": "Read Mode",
      +      "type": "string"
      +    },
      +    "reverse_output": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Reverse Output"
      +    },
      +    "rise_ms": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Rise Ms"
      +    },
      +    "sample_ms": {
      +      "anyOf": [
      +        {
      +          "maximum": 32767,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Sample Ms"
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source"
      +    },
      +    "source_b": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source B"
      +    },
      +    "source_index": {
      +      "anyOf": [
      +        {
      +          "maximum": 15,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source Index"
      +    },
      +    "start_register": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Start Register"
      +    },
      +    "target": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Target"
      +    },
      +    "text": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Text"
      +    },
      +    "timer": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Timer"
      +    },
      +    "trigger": {
      +      "default": "FALSE",
      +      "title": "Trigger",
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "pulse_output",
      +        "pwm",
      +        "speed_detect",
      +        "text_display",
      +        "file_register",
      +        "memory_pack_write",
      +        "memory_pack_read",
      +        "system_status",
      +        "encode_bits",
      +        "to_seven_segment",
      +        "ascii_literal",
      +        "hms_to_seconds",
      +        "seconds_to_hms",
      +        "ascii_to_hex",
      +        "hex_to_ascii",
      +        "bit_shift",
      +        "byte_distribute",
      +        "shift_left",
      +        "shift_right",
      +        "rotate_left",
      +        "rotate_right",
      +        "binary_to_gray",
      +        "gray_to_binary",
      +        "decode_bits",
      +        "bit_move",
      +        "nibble_move",
      +        "byte_move",
      +        "word_exchange",
      +        "byte_swap",
      +        "nibble_unite",
      +        "nibble_distribute",
      +        "byte_unite",
      +        "move_word",
      +        "move_inverse",
      +        "toggle_bit",
      +        "table_sort",
      +        "zone_write",
      +        "matrix_bit_shift",
      +        "matrix_bit_rotate",
      +        "matrix_bit_count",
      +        "matrix_and",
      +        "matrix_or",
      +        "matrix_xor",
      +        "matrix_xnr",
      +        "matrix_invert",
      +        "matrix_compare",
      +        "matrix_bit_read",
      +        "matrix_bit_write",
      +        "ascwr",
      +        "ramp",
      +        "ramp2",
      +        "reg_to_table",
      +        "table_to_reg",
      +        "table_to_table",
      +        "block_table_move",
      +        "table_swap",
      +        "register_table_search",
      +        "table_compare",
      +        "table_fill",
      +        "table_shift",
      +        "table_rotate",
      +        "queue",
      +        "stack",
      +        "block_compare"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "up": {
      +      "default": "FALSE",
      +      "title": "Up",
      +      "type": "string"
      +    },
      +    "upper": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Upper"
      +    },
      +    "value": {
      +      "anyOf": [
      +        {
      +          "maximum": 32767,
      +          "minimum": -32768,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Value"
      +    },
      +    "work": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Work"
      +    },
      +    "zero": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Zero",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "title": "ProcessFunction",
      +  "type": "object"
      +}
    • addedInput schema / $defs / RegisterOr
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "maximum": 255,
      +      "minimum": 0,
      +      "title": "Destination",
      +      "type": "integer"
      +    },
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "sa": {
      +      "maximum": 255,
      +      "minimum": 0,
      +      "title": "Sa",
      +      "type": "integer"
      +    },
      +    "sb": {
      +      "maximum": 255,
      +      "minimum": 0,
      +      "title": "Sb",
      +      "type": "integer"
      +    },
      +    "type": {
      +      "const": "register_or",
      +      "default": "register_or",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "sa",
      +    "sb",
      +    "destination"
      +  ],
      +  "title": "RegisterOr",
      +  "type": "object"
      +}
    • addedInput schema / $defs / RegisterStep
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "increment",
      +        "decrement"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "destination"
      +  ],
      +  "title": "RegisterStep",
      +  "type": "object"
      +}
    • addedInput schema / $defs / SampleCall
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Forensic anchor only: unresolved relocation bytes, generation rejected.",
      +  "properties": {
      +    "target": {
      +      "default": "1",
      +      "enum": [
      +        "1",
      +        "8"
      +      ],
      +      "title": "Target",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "call",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "title": "SampleCall",
      +  "type": "object"
      +}
    • addedInput schema / $defs / SampleFlow
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Alphanumeric labels; JMP retains only the observed target records.",
      +  "properties": {
      +    "target": {
      +      "default": "1",
      +      "maxLength": 6,
      +      "minLength": 1,
      +      "pattern": "^[A-Za-z0-9]{1,6}$",
      +      "title": "Target",
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "lbl",
      +        "jmp"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "title": "SampleFlow",
      +  "type": "object"
      +}
    • addedInput schema / $defs / SumWords
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "maximum": 511,
      +      "minimum": 1,
      +      "title": "Count",
      +      "type": "integer"
      +    },
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "source": {
      +      "title": "Source",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "sum",
      +      "default": "sum",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "count",
      +    "destination"
      +  ],
      +  "title": "SumWords",
      +  "type": "object"
      +}
    • addedInput schema / $defs / TemperatureControl
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "alarm": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Alarm",
      +      "type": "array"
      +    },
      +    "derivative": {
      +      "title": "Derivative",
      +      "type": "string"
      +    },
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "error": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Error",
      +      "type": "array"
      +    },
      +    "heat_cool": {
      +      "default": "TRUE",
      +      "title": "Heat Cool",
      +      "type": "string"
      +    },
      +    "integral": {
      +      "title": "Integral",
      +      "type": "string"
      +    },
      +    "offset": {
      +      "title": "Offset",
      +      "type": "string"
      +    },
      +    "output": {
      +      "title": "Output",
      +      "type": "string"
      +    },
      +    "proportional": {
      +      "title": "Proportional",
      +      "type": "string"
      +    },
      +    "setpoint": {
      +      "title": "Setpoint",
      +      "type": "string"
      +    },
      +    "start": {
      +      "maximum": 31,
      +      "minimum": 0,
      +      "title": "Start",
      +      "type": "integer"
      +    },
      +    "type": {
      +      "const": "tpctl",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "work": {
      +      "title": "Work",
      +      "type": "string"
      +    },
      +    "zones": {
      +      "maximum": 32,
      +      "minimum": 1,
      +      "title": "Zones",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "output",
      +    "start",
      +    "zones",
      +    "setpoint",
      +    "offset",
      +    "proportional",
      +    "integral",
      +    "derivative",
      +    "destination",
      +    "work"
      +  ],
      +  "title": "TemperatureControl",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Timer
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "address": {
      +      "maximum": 65535,
      +      "minimum": 0,
      +      "title": "Address",
      +      "type": "integer"
      +    },
      +    "enable": {
      +      "default": "always_on",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "preset": {
      +      "maximum": 65535,
      +      "minimum": 0,
      +      "title": "Preset",
      +      "type": "integer"
      +    },
      +    "time_base": {
      +      "const": "0.01s",
      +      "default": "0.01s",
      +      "title": "Time Base",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "timer",
      +      "default": "timer",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "address",
      +    "preset"
      +  ],
      +  "title": "Timer",
      +  "type": "object"
      +}
    • addedInput schema / $defs / UpDownCounter
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "clear": {
      +      "title": "Clear",
      +      "type": "string"
      +    },
      +    "cv": {
      +      "title": "Cv",
      +      "type": "string"
      +    },
      +    "preset": {
      +      "maximum": 32767,
      +      "minimum": 0,
      +      "title": "Preset",
      +      "type": "integer"
      +    },
      +    "pulse": {
      +      "title": "Pulse",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "udctr",
      +      "default": "udctr",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "up": {
      +      "title": "Up",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "cv",
      +    "preset",
      +    "pulse",
      +    "up",
      +    "clear"
      +  ],
      +  "title": "UpDownCounter",
      +  "type": "object"
      +}
    • addedInput schema / $defs / Watchdog
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "setting": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            50,
      +            60,
      +            70,
      +            80,
      +            90,
      +            100,
      +            110,
      +            120
      +          ],
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Setting"
      +    },
      +    "type": {
      +      "enum": [
      +        "wdt",
      +        "rswdt"
      +      ],
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "title": "Watchdog",
      +  "type": "object"
      +}
    • addedInput schema / $defs / WordConversion
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "destination": {
      +      "title": "Destination",
      +      "type": "string"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "operation": {
      +      "enum": [
      +        "to_bcd",
      +        "to_bin"
      +      ],
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "maximum": 9999,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      ],
      +      "title": "Source"
      +    },
      +    "type": {
      +      "const": "word_conversion",
      +      "default": "word_conversion",
      +      "title": "Type",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "source",
      +    "destination"
      +  ],
      +  "title": "WordConversion",
      +  "type": "object"
      +}
    • addedInput schema / $defs / ZoneCompare
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "above": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Above",
      +      "type": "array"
      +    },
      +    "below": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Below",
      +      "type": "array"
      +    },
      +    "enable": {
      +      "default": "TRUE",
      +      "title": "Enable",
      +      "type": "string"
      +    },
      +    "lower": {
      +      "maximum": 32767,
      +      "minimum": -32768,
      +      "title": "Lower",
      +      "type": "integer"
      +    },
      +    "source": {
      +      "title": "Source",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "zone_compare",
      +      "default": "zone_compare",
      +      "title": "Type",
      +      "type": "string"
      +    },
      +    "upper": {
      +      "maximum": 32767,
      +      "minimum": -32768,
      +      "title": "Upper",
      +      "type": "integer"
      +    },
      +    "within": {
      +      "items": {
      +        "$ref": "#/$defs/Coil"
      +      },
      +      "maxItems": 32,
      +      "title": "Within",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "upper",
      +    "lower"
      +  ],
      +  "title": "ZoneCompare",
      +  "type": "object"
      +}
    • changedInput schema / properties / initial / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "type": "boolean"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "integer"
      +        }
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / scan_ms
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Scan Ms"
      +}
  3. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so a 3 is a passing grade for adding value beyond them. The description does add real behavioral context: bounded model, Boolean/direct R/D scope rather than PLC emulation, unsupported actions fail without a partial trace, unsigned 16-bit word storage, and missing X inputs defaulting false each scan. However it stops short of saying anything about the trace's shape or size limits, which matters for a 'bounded' simulation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and exclusions are front-loaded, which is the right order. A few clauses are low-value or redundant, such as 'Supports the explicitly listed numeric/native subset' and the stray line breaks, but nothing is genuinely wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover safety. The remaining gap is that the supported-action set is deferred entirely to get_capabilities(simulation_model); this is a named and reasonable deferral, but it means the agent cannot know from this definition whether a given ladder is in scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely repeats the schema's scan_ms precondition and adds no per-parameter detail for ladder, inputs, or initial beyond a pointer to get_design_guide for the IR schema. It does contribute one semantic fact not in the schema, that words use unsigned 16-bit storage, which bears on initial values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource ('Simulate caller-supplied Ladder IR') plus the output shape ('bounded per-scan behavior trace'). It then explicitly separates itself from two siblings by name and function, so an agent can distinguish it from generate_system_ldr and compare_ldr without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states what the tool is not ('neither generates a system .ldr nor compares existing files'), names generate_system_ldr and compare_ldr as the alternatives, and gives the precondition that scan_ms is required for timers, counters, or FUN87/88/89. It also routes the agent to get_capabilities(simulation_model) for the supported-action list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.