{"ok":true,"site":{"host":"tellegen.dev","url":"https://tellegen.dev/","type":"live","desc":"Reactive visualization for power systems optimization. Drag demand and watch locational marginal prices and their adjoint sensitivities update from KKT columns, with exact DC OPF and SOCWR solves…","tools":[{"name":"list_cases","kind":"answer","impl":"imperative","description":"List configured and imported cases, including unavailable cases and their reported reasons. Returns stable case IDs, the displayed revision, and a pagination offset for select_case.","title":"List available cases","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"offset":{"type":"integer","minimum":0,"maximum":100000,"description":"Pagination offset. Defaults to 0; use next_offset from the previous result."},"limit":{"type":"integer","minimum":1,"maximum":20,"description":"Maximum cases. Defaults to 10."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"select_case","kind":"act","impl":"imperative","description":"Show a case from list_cases using the same controls as the case tabs. Leaves saved Studies intact and exits historical inspection. Changes the view only; no proposal approval is required.","title":"Switch network case","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Case ID from list_cases."},"expected_revision":{"type":"string","description":"Optional displayed revision from list_cases or inspect_case, checked before selection."}},"required":["case_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"solve_multiconductor_pf","kind":"act","impl":"imperative","description":"Calculate terminal voltages, currents, and powers for the displayed multiconductor case. Uses prescribed demand and source voltages. Rejects unsupported equipment physics. Does not optimize dispatch or change electrical inputs. Use query_network for terminal results.","title":"Solve multiconductor AC power flow","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Case ID from inspect_case."},"expected_revision":{"type":"string","description":"Displayed revision from inspect_case."},"max_iterations":{"type":"integer","minimum":1,"maximum":10000,"description":"Iteration limit, default 100."}},"required":["case_id","expected_revision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"inspect_case","kind":"act","impl":"imperative","description":"Inspect the displayed network, including a saved Study state when one is shown. Returns case, state, formulation, units, and revision. Saved states are read-only; select_case returns to the editable case.","title":"Inspect network","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"query_network","kind":"answer","impl":"imperative","description":"Query buses or branches in the displayed network by stable ID or metric. For the highest LMP use element_kind bus, sort_by price, direction desc, limit 1. Returns saved-state values when a Study state is shown.","title":"Query network elements","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"element_kind":{"type":"string","enum":["bus","branch"],"description":"Element type."},"element_ids":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Specific stable IDs to return. Omit to rank elements."},"sort_by":{"type":"string","enum":["id","demand_mw","generation_mw","price","voltage_pu","voltage_v","loading","flow_mw","rating_mw"],"description":"Metric for ranking. Defaults to demand_mw for buses and loading for branches."},"direction":{"type":"string","enum":["asc","desc"],"description":"Sort direction. Defaults to desc."},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"Maximum rows. Defaults to 5."}},"required":["case_id","element_kind"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"analyze_sensitivity","kind":"act","impl":"imperative","description":"Compute the displayed formulation's LMP sensitivity for one bus demand or branch rating and return the largest responses. Leaves the visible selection unchanged.","title":"Analyze sensitivity","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"target":{"type":"object","properties":{"kind":{"type":"string","enum":["bus","branch"],"description":"Element type."},"element_id":{"type":"string","description":"Stable element ID returned by query_network."}},"required":["kind","element_id"],"additionalProperties":false},"limit":{"type":"integer","minimum":1,"maximum":8,"description":"Maximum response rows. Defaults to 5."}},"required":["case_id","target"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"focus_network","kind":"act","impl":"imperative","description":"Focus a bus or branch in the tellegen interface and load its computed sensitivity view. The returned result reflects the interface after the selection has settled.","title":"Focus network element","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"target":{"type":"object","properties":{"kind":{"type":"string","enum":["bus","branch"],"description":"Element type."},"element_id":{"type":"string","description":"Stable element ID returned by query_network."}},"required":["kind","element_id"],"additionalProperties":false}},"required":["case_id","target"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"preview_case_update","kind":"act","impl":"imperative","description":"Predict objective and locational marginal price (LMP) changes for bounded demand or branch rating edits at the current formulation. Leaves the case and visible interface unchanged and requires the current revision.","title":"Preview case update","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"expected_revision":{"type":"string","description":"Current revision from inspect_case; protects against stale analysis."},"mode":{"type":"string","enum":["set","increment"],"description":"Set final deltas or add the supplied MW changes. Defaults to set."},"demand":{"type":"array","maxItems":24,"description":"Bus demand delta edits in MW from the base case.","items":{"type":"object","properties":{"bus_id":{"type":"string","description":"Stable bus ID from query_network."},"delta_mw":{"type":"number","description":"Demand delta in MW."}},"required":["bus_id","delta_mw"],"additionalProperties":false}},"ratings":{"type":"array","maxItems":24,"description":"Branch rating delta edits in MW from the base case.","items":{"type":"object","properties":{"branch_id":{"type":"string","description":"Stable branch ID from query_network."},"delta_mw":{"type":"number","description":"Branch rating delta in MW."}},"required":["branch_id","delta_mw"],"additionalProperties":false}},"limit":{"type":"integer","minimum":1,"maximum":8,"description":"Maximum predicted locational marginal price (LMP) changes. Defaults to 5."}},"required":["case_id","expected_revision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"update_case","kind":"act","impl":"imperative","description":"Atomically set or increment demand and branch-rating deltas, optionally choose a formulation, then solve and update the visible interface. Requires the current revision.","title":"Update and solve case","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"expected_revision":{"type":"string","description":"Current revision from inspect_case; protects against stale writes."},"mode":{"type":"string","enum":["set","increment"],"description":"Set final deltas or add the supplied MW changes. Defaults to set."},"demand":{"type":"array","maxItems":24,"description":"Bus demand delta edits in MW from the base case.","items":{"type":"object","properties":{"bus_id":{"type":"string","description":"Stable bus ID from query_network."},"delta_mw":{"type":"number","description":"Demand delta in MW."}},"required":["bus_id","delta_mw"],"additionalProperties":false}},"ratings":{"type":"array","maxItems":24,"description":"Branch rating delta edits in MW from the base case.","items":{"type":"object","properties":{"branch_id":{"type":"string","description":"Stable branch ID from query_network."},"delta_mw":{"type":"number","description":"Branch rating delta in MW."}},"required":["branch_id","delta_mw"],"additionalProperties":false}},"formulation":{"type":"string","description":"Available formulation ID shown by inspect_case."}},"required":["case_id","expected_revision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"reset_case","kind":"act","impl":"imperative","description":"Clear all committed demand and branch-rating edits in the active case, keep its formulation, solve, and update the visible interface. Requires the current revision.","title":"Reset case edits","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"expected_revision":{"type":"string","description":"Current revision from inspect_case; protects against stale writes."}},"required":["case_id","expected_revision"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"create_study","kind":"act","impl":"imperative","description":"Save the current case and its results as a Study. A planning goal is optional; add or revise it later. Creating a Study does not change the network or apply a proposal.","title":"Save the current case","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","minLength":1,"maxLength":4096},"expected_case_revision":{"type":"string","minLength":1,"maxLength":4096},"study":{"additionalProperties":false,"properties":{"decisions":{"anyOf":[{"$ref":"#/$defs/DecisionSpace"},{"type":"null"}]},"display":{"anyOf":[{"$ref":"#/$defs/CreateDisplay"},{"type":"null"}]},"formulation":{"enum":["dcopf","acpf","socwr"],"type":"string"},"interpretation":{"default":"","type":"string"},"model_details":{"anyOf":[{"$ref":"#/$defs/ModelDetails"},{"type":"null"}]},"objective":{"anyOf":[{"$ref":"#/$defs/StudyObjective"},{"type":"null"}]},"request":{"default":"","type":"string"},"solution":{"description":"A saved solution must belong to the supplied instance.","type":["string","null"]},"success_value":{"format":"double","type":["number","null"]},"title":{"type":"string"},"view":{"anyOf":[{"$ref":"#/$defs/SolveResponse"},{"type":"null"}]}},"required":["title","formulation"],"type":"object"},"goal":{"additionalProperties":false,"properties":{"decisions":{"anyOf":[{"$ref":"#/$defs/DecisionSpace"},{"type":"null"}]},"display":{"anyOf":[{"$ref":"#/$defs/CreateDisplay"},{"type":"null"}]},"formulation":{"enum":["dcopf","acpf","socwr"],"type":"string"},"interpretation":{"default":"","type":"string"},"model_details":{"anyOf":[{"$ref":"#/$defs/ModelDetails"},{"type":"null"}]},"objective":{"anyOf":[{"$ref":"#/$defs/StudyObjective"},{"type":"null"}]},"request":{"default":"","type":"string"},"solution":{"description":"A saved solution must belong to the supplied instance.","type":["string","null"]},"success_value":{"format":"double","type":["number","null"]},"title":{"type":"string"},"view":{"anyOf":[{"$ref":"#/$defs/SolveResponse"},{"type":"null"}]}},"required":["title","formulation"],"type":"object","description":"Legacy alias for study."}},"required":["case_id","expected_case_revision"],"additionalProperties":false,"oneOf":[{"required":["study"],"not":{"required":["goal"]}},{"required":["goal"],"not":{"required":["study"]}}],"$defs":{"DecisionSpace":{"additionalProperties":false,"description":"The feasible set, distinct from both the inner problem and the outer goal.","properties":{"demand":{"anyOf":[{"$ref":"#/$defs/DemandConstraint"},{"type":"null"}]},"max_changed_elements":{"format":"uint","maximum":65536,"minimum":1,"type":"integer"},"total_budget":{"format":"double","minimum":0,"type":"number"},"variables":{"items":{"$ref":"#/$defs/DecisionVariable"},"maxItems":65536,"minItems":1,"type":"array"}},"required":["variables","total_budget","max_changed_elements"],"type":"object"},"DemandConstraint":{"oneOf":[{"additionalProperties":false,"description":"Allocate this additional MW across the declared demand decisions.","properties":{"increase_mw":{"format":"double","type":"number"},"kind":{"const":"placement","type":"string"}},"required":["kind","increase_mw"],"type":"object"},{"additionalProperties":false,"description":"Preserve the existing total MW across the declared demand decisions.","properties":{"kind":{"const":"redistribution","type":"string"}},"required":["kind"],"type":"object"}]},"DecisionVariable":{"additionalProperties":false,"description":"Bounds and increments apply to changes from the goal's anchor state in a Study.","properties":{"budget_weight":{"description":"Budget consumption per absolute unit of intervention.","format":"double","type":"number"},"element":{"$ref":"#/$defs/ElementKey"},"id":{"maxLength":128,"minLength":1,"type":"string"},"increment":{"format":"double","type":"number"},"intervention":{"$ref":"#/$defs/Intervention"},"lower":{"format":"double","type":"number"},"upper":{"format":"double","type":"number"}},"required":["id","element","intervention","lower","upper","increment","budget_weight"],"type":"object"},"ElementKey":{"oneOf":[{"type":"integer"},{"type":"string"}]},"Intervention":{"description":"A numerical intervention supported by the existing solvers.","enum":["branch_rating","active_demand"],"type":"string"},"CreateDisplay":{"additionalProperties":false,"properties":{"camera":{"anyOf":[{"$ref":"#/$defs/Camera"},{"type":"null"}]},"case_id":{"type":"string"},"diagram_camera":{"anyOf":[{"$ref":"#/$defs/DiagramCamera"},{"type":"null"}],"default":null},"geo_layer":{"type":"string"},"layers":{"default":[],"items":{"type":"string"},"type":"array"}},"required":["case_id","geo_layer"],"type":"object"},"Camera":{"additionalProperties":false,"properties":{"bearing":{"format":"double","type":"number"},"center":{"items":{"format":"double","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"pitch":{"format":"double","type":"number"},"zoom":{"format":"double","type":"number"}},"required":["center","zoom","bearing","pitch"],"type":"object"},"DiagramCamera":{"additionalProperties":false,"properties":{"center":{"items":{"format":"double","type":"number"},"maxItems":2,"minItems":2,"type":"array"},"scale":{"format":"double","type":"number"}},"required":["center","scale"],"type":"object"},"ModelDetails":{"properties":{"approximations":{"items":{"$ref":"#/$defs/CostApproximation"},"type":"array"},"method":{"$ref":"#/$defs/CostPreparation"},"model":{"type":"string"},"quantity":{"type":"string"},"source":{"type":"string"},"units":{"type":"string"}},"required":["method","source","model","quantity","units","approximations"],"type":"object"},"CostApproximation":{"properties":{"bus":{"format":"uint","minimum":0,"type":"integer"},"generator":{"format":"uint","minimum":0,"type":"integer"},"max_breakpoint_error":{"format":"double","type":"number"},"model_cost":{"$ref":"#/$defs/GenCost"},"rms_breakpoint_error":{"format":"double","type":"number"},"source_cost":{"$ref":"#/$defs/GenCost"}},"required":["generator","bus","source_cost","model_cost","rms_breakpoint_error","max_breakpoint_error"],"type":"object"},"GenCost":{"description":"A generator cost curve (`mpc.gencost` row).","properties":{"coeffs":{"description":"Raw coefficients, highest order first for the polynomial model:\n`[c_{k-1}, …, c1, c0]`.","items":{"format":"double","type":"number"},"type":"array"},"model":{"description":"1 = piecewise linear, 2 = polynomial.","format":"uint8","maximum":255,"minimum":0,"type":"integer"},"ncost":{"description":"Number of cost coefficients (polynomial) or breakpoints (piecewise).","format":"uint","minimum":0,"type":"integer"},"shutdown":{"format":"double","type":"number"},"startup":{"format":"double","type":"number"}},"required":["model","startup","shutdown","ncost","coeffs"],"type":"object"},"CostPreparation":{"enum":["exact","convex_quadratic_fit"],"type":"string"},"StudyObjective":{"description":"A scalar goal over the exact operating point and explicit interventions.","oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"weighted_observable","type":"string"},"operand":{"$ref":"#/$defs/Operand"},"weights":{"items":{"$ref":"#/$defs/ObservableWeight"},"maxItems":65536,"minItems":1,"type":"array"}},"required":["kind","operand","weights"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"sum","type":"string"},"terms":{"items":{"$ref":"#/$defs/StudyObjective"},"maxItems":65536,"minItems":1,"type":"array"}},"required":["kind","terms"],"type":"object"},{"additionalProperties":false,"properties":{"expression":{"$ref":"#/$defs/StudyObjective"},"factor":{"format":"double","type":"number"},"kind":{"const":"scale","type":"string"}},"required":["kind","factor","expression"],"type":"object"},{"additionalProperties":false,"properties":{"expression":{"$ref":"#/$defs/StudyObjective"},"kind":{"const":"squared_target","type":"string"},"target":{"format":"double","type":"number"}},"required":["kind","target","expression"],"type":"object"},{"additionalProperties":false,"properties":{"decision":{"type":"string"},"kind":{"const":"intervention_penalty","type":"string"},"linear":{"format":"double","type":"number"},"quadratic":{"format":"double","type":"number"}},"required":["kind","decision","linear","quadratic"],"type":"object"}]},"Operand":{"description":"What a sensitivity is taken *of*, named for the physical power quantity rather\nthan a formulation's internal variable. The orthogonal sub-axes (active/reactive,\nfrom/to, voltage representation) are visible to the type system; each formulation\nmaps a request to its own KKT rows or returns [`SensError::Unsupported`].\n\nThe dialects fold into one vocabulary: DC `Angle` is `Voltage(Angle)`, the conic\nsquared magnitude `w` is `Voltage(Squared)`, the nodal price is `Price(Active)`.","oneOf":[{"additionalProperties":false,"description":"Nodal-balance dual (the LMP for active power, the reactive price for\nreactive), per bus.","properties":{"Price":{"$ref":"#/$defs/Power"}},"required":["Price"],"type":"object"},{"additionalProperties":false,"description":"Generator dispatch `pg` / `qg`, per generator.","properties":{"Dispatch":{"$ref":"#/$defs/Power"}},"required":["Dispatch"],"type":"object"},{"additionalProperties":false,"description":"Branch active/reactive flow at the from/to end, per branch.","properties":{"Flow":{"properties":{"end":{"$ref":"#/$defs/End"},"power":{"$ref":"#/$defs/Power"}},"required":["power","end"],"type":"object"}},"required":["Flow"],"type":"object"},{"additionalProperties":false,"description":"Bus voltage in the formulation's representation (`vm` / `va` / `w` / `wr` /\n`wi`), per bus.","properties":{"Voltage":{"$ref":"#/$defs/VoltageKind"}},"required":["Voltage"],"type":"object"}]},"Power":{"description":"Active or reactive power. The orthogonal P/Q sub-axis shared by prices,\ndispatch, flows, and demand.","enum":["Active","Reactive"],"type":"string"},"End":{"description":"Which end of a branch a flow is measured at.","enum":["From","To"],"type":"string"},"VoltageKind":{"description":"How a voltage operand is represented: polar (`Magnitude`, `Angle`) for the AC\npower flow, or the W-space lift (`Squared` = `|V|²`, `ProductReal` = `Re(Vi Vj*)`,\n`ProductImag` = `Im(Vi Vj*)`) for the conic relaxation.","enum":["Magnitude","Angle","Squared","ProductReal","ProductImag"],"type":"string"},"ObservableWeight":{"additionalProperties":false,"description":"A weighted observable in the units reported by the selected formulation.","properties":{"element":{"$ref":"#/$defs/ElementKey"},"weight":{"format":"double","type":"number"}},"required":["element","weight"],"type":"object"},"SolveResponse":{"description":"The formulation-agnostic solve result. A superset: every block is optional, and\neach formulation fills what it produces. Powers are MW/MVAr, nodal values are\nin objective units per selected power unit, angles radians, `vm` per unit, and\n`w = |V|^2` per unit squared. Element ids\nare the original bus/branch/generator ids, so the frontend joins straight onto\nits case.","properties":{"dispatch":{"items":{"$ref":"#/$defs/GenDispatch"},"type":["array","null"]},"flows":{"items":{"$ref":"#/$defs/BranchFlow"},"type":["array","null"]},"formulation":{"$ref":"#/$defs/Problem","description":"The formulation that produced this, echoed for the client."},"injections":{"description":"Nodal injections (acpf), MW/MVAr.","items":{"$ref":"#/$defs/BusInjection"},"type":["array","null"]},"iterations":{"anyOf":[{"$ref":"#/$defs/Iterations"},{"type":"null"}]},"lmp":{"description":"Active nodal price when the solved OPF declares a network generator\ncost objective. Feasibility solves leave this absent.","items":{"$ref":"#/$defs/BusScalar"},"type":["array","null"]},"lmp_q":{"description":"Reactive nodal price. Always `None` in this build; the field is retained for\nwire-format stability.","items":{"$ref":"#/$defs/BusScalar"},"type":["array","null"]},"objective":{"format":"double","type":["number","null"]},"sensitivities":{"description":"One self-describing matrix per requested cell, in request order. Each carries\nits own row/column element ids and the served-unit label.","items":{"$ref":"#/$defs/SensitivityMatrix"},"type":"array"},"status":{"$ref":"#/$defs/SolveStatus"},"va":{"description":"Voltage angle, radians (every path except socwr, which is W-space).","items":{"$ref":"#/$defs/BusScalar"},"type":["array","null"]},"vm":{"description":"Voltage magnitude, per unit (ACPF or square root of SOCWR squared magnitude).","items":{"$ref":"#/$defs/BusScalar"},"type":["array","null"]},"w":{"description":"Squared voltage magnitude `w = |V|^2`, per unit squared (socwr). The conic\nrelaxation does not guarantee a globally consistent set of voltage angles.","items":{"$ref":"#/$defs/BusScalar"},"type":["array","null"]},"wi":{"items":{"$ref":"#/$defs/BranchScalar"},"type":["array","null"]},"wr":{"description":"Real and imaginary oriented branch voltage products (SOCWR).","items":{"$ref":"#/$defs/BranchScalar"},"type":["array","null"]}},"required":["formulation","status"],"type":"object"},"GenDispatch":{"description":"Generator dispatch, keyed by original generator id. `qg` is `None` on the DC paths.","properties":{"bus":{"description":"Original bus identity, allowing exact aggregation of co-located dispatch.","format":"uint","minimum":0,"type":["integer","null"]},"gen":{"format":"uint","minimum":0,"type":"integer"},"pg":{"format":"double","type":"number"},"qg":{"format":"double","type":["number","null"]}},"required":["gen","pg"],"type":"object"},"BranchFlow":{"description":"Branch flows, keyed by original branch id (plus the row uid when carried, as in\n[`BusScalar`]). `pf` (from-end active, MW) and `loading` (|S|/limit,\ndimensionless) are present on every formulation that has flows; the reactive\nand to-end legs are `None` on the DC paths.","properties":{"branch":{"format":"uint","minimum":0,"type":"integer"},"loading":{"format":"double","type":"number"},"pf":{"format":"double","type":"number"},"pt":{"format":"double","type":["number","null"]},"qf":{"format":"double","type":["number","null"]},"qt":{"format":"double","type":["number","null"]},"uid":{"type":["string","null"]}},"required":["branch","pf","loading"],"type":"object"},"Problem":{"description":"Which problem to solve. The convex/power flow solve paths, as the lowercase JSON\ntags `\"dcpf\"`/`\"dcopf\"`/`\"acpf\"`/`\"socwr\"`. A plain (not internally tagged) enum\nso a request that omits it defaults to [`DcOpf`](Problem::DcOpf), and `{}` is a\nvalid base-case DC OPF request.\n\nThe `\"acopf\"` tag (full nonlinear AC OPF) is retained for wire-format stability\nbut is not solved by this build: [`capabilities_json`] reports it unavailable and\nrequesting it returns a clean `Err`.","oneOf":[{"const":"dcpf","description":"DC power flow: angles and flows at the fixed generator setpoints. No prices,\nno dispatch, no sensitivity.","type":"string"},{"const":"dcopf","description":"DC OPF: the LMP / dispatch / flow workhorse. Differentiable via the DC KKT.","type":"string"},{"const":"acpf","description":"AC polar Newton power flow. Voltages and nodal injections. Differentiable\nvia the AC Newton system.","type":"string"},{"const":"socwr","description":"SOCWR (Jabr) conic relaxation of AC OPF. Differentiable via the conic KKT.","type":"string"},{"const":"acopf","description":"Full nonlinear AC OPF. Not available in this build (the dispatch errors\ncleanly); the tag is kept so the JSON format stays stable.","type":"string"}]},"BusInjection":{"description":"A nodal net injection (MW / MVAr), keyed by original bus id (plus the row uid\nwhen carried, as in [`BusScalar`]). Injections describe the net nodal power balance.","properties":{"bus":{"format":"uint","minimum":0,"type":"integer"},"p":{"format":"double","type":"number"},"q":{"format":"double","type":"number"},"uid":{"type":["string","null"]}},"required":["bus","p","q"],"type":"object"},"Iterations":{"anyOf":[{"description":"Interior-point iterate trace (dcopf / socwr).","items":{"$ref":"#/$defs/SolveIteration"},"type":"array"},{"description":"Newton iteration count and final infinity-norm mismatch (acpf).","properties":{"count":{"format":"uint","minimum":0,"type":"integer"},"residual":{"format":"double","type":"number"}},"required":["count","residual"],"type":"object"}],"description":"The convergence record. OPF paths carry the full interior-point trace (for the\nsolve-card sparkline); the AC power flow carries its Newton count and final\nmismatch. Untagged: the OPF arm serializes to the same bare array the DC OPF\nalways returned."},"SolveIteration":{"description":"One interior-point iterate: the iteration index, the primal objective, and\nthe primal and dual residuals. Collected once per Clarabel iteration to draw\nthe convergence plot. Shape matches the frontend `SolveIteration`.","properties":{"inf_du":{"format":"double","type":"number"},"inf_pr":{"format":"double","type":"number"},"iter":{"format":"uint32","minimum":0,"type":"integer"},"objective":{"format":"double","type":"number"}},"required":["iter","objective","inf_pr","inf_du"],"type":"object"},"BusScalar":{"description":"A scalar keyed by original bus id (LMP, voltage, angle, squared magnitude).\n`uid` is the bus's powerio row uid when the solved network carried one, so an\noverlay can re-key on stable identity instead of the positional id.","properties":{"bus":{"format":"uint","minimum":0,"type":"integer"},"uid":{"type":["string","null"]},"value":{"format":"double","type":"number"}},"required":["bus","value"],"type":"object"},"SensitivityMatrix":{"description":"A self-describing sensitivity result: `values[r][c] = d(rows[r])/d(cols[c])`,\nwith row and column metadata naming each quantity and its source element, and the\nserved-unit label.","properties":{"cols":{"items":{"$ref":"#/$defs/ColMeta"},"type":"array"},"rows":{"items":{"$ref":"#/$defs/RowMeta"},"type":"array"},"units":{"type":"string"},"values":{"description":"`values[r][c] = d(operand_r)/d(parameter_c)`, in the units named by `units`. The\nengine produces per-unit values; the api edge rescales to served units.","items":{"items":{"format":"double","type":"number"},"type":"array"},"type":"array"}},"required":["values","rows","cols","units"],"type":"object"},"ColMeta":{"description":"Identity and quantity metadata for one column of a [`SensitivityMatrix`].","properties":{"element":{"$ref":"#/$defs/ElementId"},"index":{"description":"Dense index of the element this column varies.","format":"uint","minimum":0,"type":"integer"},"parameter":{"$ref":"#/$defs/Parameter"}},"required":["parameter","element","index"],"type":"object"},"ElementId":{"description":"A source-id reference for a dense row or column, so a [`SensitivityMatrix`]\nself-describes and the api serializes it without re-deriving id maps.","oneOf":[{"additionalProperties":false,"properties":{"Bus":{"format":"uint","minimum":0,"type":"integer"}},"required":["Bus"],"type":"object"},{"additionalProperties":false,"properties":{"Branch":{"format":"uint","minimum":0,"type":"integer"}},"required":["Branch"],"type":"object"},{"additionalProperties":false,"properties":{"Generator":{"format":"uint","minimum":0,"type":"integer"}},"required":["Generator"],"type":"object"}]},"Parameter":{"description":"What a sensitivity is taken *with respect to* — the parameter whose hand-derived\n`dK/dp` column drives the solve.","oneOf":[{"additionalProperties":false,"description":"Bus active/reactive demand `pd` / `qd`, per bus.","properties":{"Demand":{"$ref":"#/$defs/Power"}},"required":["Demand"],"type":"object"},{"additionalProperties":false,"description":"Generation cost coefficient, per generator.","properties":{"Cost":{"$ref":"#/$defs/CostTerm"}},"required":["Cost"],"type":"object"},{"const":"LineLimit","description":"DC thermal limit `fmax` / AC-conic apparent-power `|S|` limit, per branch.","type":"string"},{"additionalProperties":false,"description":"Branch series admittance `g` / `b`, per branch.","properties":{"SeriesAdmittance":{"$ref":"#/$defs/GB"}},"required":["SeriesAdmittance"],"type":"object"},{"additionalProperties":false,"description":"Bus shunt admittance `gs` / `bs`, per bus.","properties":{"ShuntAdmittance":{"$ref":"#/$defs/GB"}},"required":["ShuntAdmittance"],"type":"object"},{"additionalProperties":false,"description":"Voltage-magnitude bound right-hand side (the `w = |V|²` bound), per bus.","properties":{"VoltageBound":{"$ref":"#/$defs/Bound"}},"required":["VoltageBound"],"type":"object"},{"additionalProperties":false,"description":"Generator output bound right-hand side (`pmax` / `pmin` / `qmax` / `qmin`),\nper generator.","properties":{"GenBound":{"properties":{"bound":{"$ref":"#/$defs/Bound"},"power":{"$ref":"#/$defs/Power"}},"required":["power","bound"],"type":"object"}},"required":["GenBound"],"type":"object"},{"additionalProperties":false,"description":"Transformer tap ratio / phase shift, per branch.","properties":{"Transformer":{"$ref":"#/$defs/TapKind"}},"required":["Transformer"],"type":"object"},{"const":"Switching","description":"Branch switching state `sw` in `[0, 1]`, per branch.","type":"string"}]},"CostTerm":{"description":"Which generation-cost coefficient: the quadratic `cq` or the linear `cl`.","enum":["Quadratic","Linear"],"type":"string"},"GB":{"description":"Conductance `g` or susceptance `b`, the real/imaginary parts of an admittance.","enum":["Conductance","Susceptance"],"type":"string"},"Bound":{"description":"A min or max bound, e.g. the lower/upper voltage-magnitude limit.","enum":["Min","Max"],"type":"string"},"TapKind":{"description":"A transformer control: the tap ratio or the phase-shift angle.","enum":["Ratio","PhaseShift"],"type":"string"},"RowMeta":{"description":"Identity and quantity metadata for one row of a [`SensitivityMatrix`].","properties":{"element":{"$ref":"#/$defs/ElementId"},"index":{"description":"Dense index of the element this row reports.","format":"uint","minimum":0,"type":"integer"},"operand":{"$ref":"#/$defs/Operand"}},"required":["operand","element","index"],"type":"object"},"SolveStatus":{"description":"A solve outcome that succeeded. A failed solve is the `Err` arm of a solve entry.","oneOf":[{"const":"optimal","description":"An OPF reached optimality.","type":"string"},{"const":"feasible","description":"A power flow converged to a feasible point.","type":"string"}]},"BranchScalar":{"description":"A branch-indexed voltage product, in squared per unit.","properties":{"branch":{"format":"uint","minimum":0,"type":"integer"},"value":{"format":"double","type":"number"}},"required":["branch","value"],"type":"object"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"inspect_study","kind":"act","impl":"imperative","description":"Inspect the open Study, read a bounded page of goals, states or evidence, or open a saved Study. Saved candidates remain unapplied.","title":"Read saved goals, states and evidence","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096,"description":"Open this saved Study if it is not currently open."},"section":{"enum":["summary","goal","states","experiment","evidence"]},"record_id":{"type":"string","minLength":1,"maxLength":4096},"offset":{"type":"integer","minimum":0},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"revise_study_goal","kind":"act","impl":"imperative","description":"Save a new goal revision without changing historical goals. The revision invalidates the current recommendation and approvals.","title":"Revise the objective and permitted changes","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"goal":{"$ref":"#/$defs/GoalRevision"},"kind":{"const":"revise_goal","type":"string"}},"required":["kind","goal"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{"GoalRevision":{"additionalProperties":false,"description":"A goal revision retains its own anchor and interpretation.","properties":{"anchor_state":{"type":"string"},"decisions":{"$ref":"#/$defs/DecisionSpace"},"interpretation":{"type":"string"},"objective":{"$ref":"#/$defs/StudyObjective"},"parent":{"type":["string","null"]},"request":{"type":"string"},"success_value":{"format":"double","type":["number","null"]}},"required":["anchor_state","request","interpretation","objective","decisions"],"type":"object"},"DecisionSpace":{"additionalProperties":false,"description":"The feasible set, distinct from both the inner problem and the outer goal.","properties":{"demand":{"anyOf":[{"$ref":"#/$defs/DemandConstraint"},{"type":"null"}]},"max_changed_elements":{"format":"uint","maximum":65536,"minimum":1,"type":"integer"},"total_budget":{"format":"double","minimum":0,"type":"number"},"variables":{"items":{"$ref":"#/$defs/DecisionVariable"},"maxItems":65536,"minItems":1,"type":"array"}},"required":["variables","total_budget","max_changed_elements"],"type":"object"},"DemandConstraint":{"oneOf":[{"additionalProperties":false,"description":"Allocate this additional MW across the declared demand decisions.","properties":{"increase_mw":{"format":"double","type":"number"},"kind":{"const":"placement","type":"string"}},"required":["kind","increase_mw"],"type":"object"},{"additionalProperties":false,"description":"Preserve the existing total MW across the declared demand decisions.","properties":{"kind":{"const":"redistribution","type":"string"}},"required":["kind"],"type":"object"}]},"DecisionVariable":{"additionalProperties":false,"description":"Bounds and increments apply to changes from the goal's anchor state in a Study.","properties":{"budget_weight":{"description":"Budget consumption per absolute unit of intervention.","format":"double","type":"number"},"element":{"$ref":"#/$defs/ElementKey"},"id":{"maxLength":128,"minLength":1,"type":"string"},"increment":{"format":"double","type":"number"},"intervention":{"$ref":"#/$defs/Intervention"},"lower":{"format":"double","type":"number"},"upper":{"format":"double","type":"number"}},"required":["id","element","intervention","lower","upper","increment","budget_weight"],"type":"object"},"ElementKey":{"oneOf":[{"type":"integer"},{"type":"string"}]},"Intervention":{"description":"A numerical intervention supported by the existing solvers.","enum":["branch_rating","active_demand"],"type":"string"},"StudyObjective":{"description":"A scalar goal over the exact operating point and explicit interventions.","oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"weighted_observable","type":"string"},"operand":{"$ref":"#/$defs/Operand"},"weights":{"items":{"$ref":"#/$defs/ObservableWeight"},"maxItems":65536,"minItems":1,"type":"array"}},"required":["kind","operand","weights"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"sum","type":"string"},"terms":{"items":{"$ref":"#/$defs/StudyObjective"},"maxItems":65536,"minItems":1,"type":"array"}},"required":["kind","terms"],"type":"object"},{"additionalProperties":false,"properties":{"expression":{"$ref":"#/$defs/StudyObjective"},"factor":{"format":"double","type":"number"},"kind":{"const":"scale","type":"string"}},"required":["kind","factor","expression"],"type":"object"},{"additionalProperties":false,"properties":{"expression":{"$ref":"#/$defs/StudyObjective"},"kind":{"const":"squared_target","type":"string"},"target":{"format":"double","type":"number"}},"required":["kind","target","expression"],"type":"object"},{"additionalProperties":false,"properties":{"decision":{"type":"string"},"kind":{"const":"intervention_penalty","type":"string"},"linear":{"format":"double","type":"number"},"quadratic":{"format":"double","type":"number"}},"required":["kind","decision","linear","quadratic"],"type":"object"}]},"Operand":{"description":"What a sensitivity is taken *of*, named for the physical power quantity rather\nthan a formulation's internal variable. The orthogonal sub-axes (active/reactive,\nfrom/to, voltage representation) are visible to the type system; each formulation\nmaps a request to its own KKT rows or returns [`SensError::Unsupported`].\n\nThe dialects fold into one vocabulary: DC `Angle` is `Voltage(Angle)`, the conic\nsquared magnitude `w` is `Voltage(Squared)`, the nodal price is `Price(Active)`.","oneOf":[{"additionalProperties":false,"description":"Nodal-balance dual (the LMP for active power, the reactive price for\nreactive), per bus.","properties":{"Price":{"$ref":"#/$defs/Power"}},"required":["Price"],"type":"object"},{"additionalProperties":false,"description":"Generator dispatch `pg` / `qg`, per generator.","properties":{"Dispatch":{"$ref":"#/$defs/Power"}},"required":["Dispatch"],"type":"object"},{"additionalProperties":false,"description":"Branch active/reactive flow at the from/to end, per branch.","properties":{"Flow":{"properties":{"end":{"$ref":"#/$defs/End"},"power":{"$ref":"#/$defs/Power"}},"required":["power","end"],"type":"object"}},"required":["Flow"],"type":"object"},{"additionalProperties":false,"description":"Bus voltage in the formulation's representation (`vm` / `va` / `w` / `wr` /\n`wi`), per bus.","properties":{"Voltage":{"$ref":"#/$defs/VoltageKind"}},"required":["Voltage"],"type":"object"}]},"Power":{"description":"Active or reactive power. The orthogonal P/Q sub-axis shared by prices,\ndispatch, flows, and demand.","enum":["Active","Reactive"],"type":"string"},"End":{"description":"Which end of a branch a flow is measured at.","enum":["From","To"],"type":"string"},"VoltageKind":{"description":"How a voltage operand is represented: polar (`Magnitude`, `Angle`) for the AC\npower flow, or the W-space lift (`Squared` = `|V|²`, `ProductReal` = `Re(Vi Vj*)`,\n`ProductImag` = `Im(Vi Vj*)`) for the conic relaxation.","enum":["Magnitude","Angle","Squared","ProductReal","ProductImag"],"type":"string"},"ObservableWeight":{"additionalProperties":false,"description":"A weighted observable in the units reported by the selected formulation.","properties":{"element":{"$ref":"#/$defs/ElementKey"},"weight":{"format":"double","type":"number"}},"required":["element","weight"],"type":"object"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"branch_study","kind":"act","impl":"imperative","description":"Inspect a saved state and continue exploration from it. This changes the inspected pointer, not the applied state.","title":"Continue from a saved network state","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"kind":{"const":"branch","type":"string"},"rationale":{"type":"string"},"state":{"type":"string"}},"required":["kind","state","rationale"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"compare_study_states","kind":"act","impl":"imperative","description":"Compare two saved network states, optionally under a selected goal revision. Results include operating-point changes and goal progress when a goal is selected.","title":"Compare network operating points","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"goal":{"type":["string","null"]},"kind":{"const":"compare","type":"string"},"left":{"type":"string"},"right":{"type":"string"}},"required":["kind","left","right"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"propose_study","kind":"act","impl":"imperative","description":"Explore feasible capacity or demand interventions using implicit gradients and exact solves. Every trial counts against the solve budget. Save the best verified recommendation without applying it. The user applies it in the Study panel.","title":"Find capacity or demand improvements","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"goal":{"type":"string"},"kind":{"const":"propose","type":"string"},"options":{"$ref":"#/$defs/SearchOptions"},"rationale":{"type":"string"},"state":{"type":"string"}},"required":["kind","state","goal","options","rationale"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{"SearchOptions":{"additionalProperties":false,"properties":{"beam_width":{"format":"uint","maximum":32,"minimum":1,"type":"integer"},"max_iterations":{"format":"uint","maximum":256,"minimum":0,"type":"integer"},"max_solves":{"format":"uint","maximum":256,"minimum":0,"type":"integer"},"min_improvement":{"format":"double","minimum":0,"type":"number"}},"required":["max_solves","beam_width","max_iterations","min_improvement"],"type":"object"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"edit_demand","kind":"act","impl":"imperative","description":"Add signed MW increments at permitted buses to the selected saved state. Edits accumulate across calls and persist after reload. Individual bounds and the total change budget apply to every step; incomplete demand totals stay unapplied. Read the resulting state's evidence for the cumulative demand vector.","title":"Adjust bus demand","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"changes":{"items":{"$ref":"#/$defs/DemandAdjustment"},"maxItems":65536,"minItems":1,"type":"array"},"constrain_to_goal":{"default":true,"type":"boolean"},"goal":{"type":["string","null"]},"kind":{"const":"edit_demand","type":"string"},"rationale":{"type":"string"},"state":{"type":"string"}},"required":["kind","state","changes","rationale"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{"DemandAdjustment":{"additionalProperties":false,"properties":{"bus":{"$ref":"#/$defs/ElementKey"},"delta_mw":{"description":"Signed increment to the selected state's demand, in MW.","format":"double","type":"number"}},"required":["bus","delta_mw"],"type":"object"},"ElementKey":{"oneOf":[{"type":"integer"},{"type":"string"}]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"restore_base_case","kind":"act","impl":"imperative","description":"Exactly solve the retained original network data and save a reset candidate without applying it or deleting history. The user can apply the reset in the Study panel. Reports when the original input is unavailable.","title":"Restore the original network base case","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"goal":{"type":["string","null"]},"kind":{"const":"restore_base","type":"string"},"rationale":{"type":"string"},"state":{"type":"string"}},"required":["kind","state","rationale"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"record_study_evidence","kind":"act","impl":"imperative","description":"Attach a stated rationale and evidence to a saved state without creating an electrical state. Do not record private agent reasoning.","title":"Record an observation or sensitivity result","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"study_id":{"type":"string","minLength":1,"maxLength":4096},"expected_revision":{"type":"integer","minimum":0},"operation":{"additionalProperties":false,"properties":{"assessed_recommendation":{"type":["string","null"]},"evidence":true,"goal":{"type":["string","null"]},"kind":{"const":"record_evidence","type":"string"},"rationale":{"type":"string"},"sensitivity":{"type":"boolean"},"state":{"type":"string"}},"required":["kind","state","sensitivity","rationale","evidence"],"type":"object"}},"required":["study_id","expected_revision","operation"],"additionalProperties":false,"$defs":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"propose_capacity_plan","kind":"act","impl":"imperative","description":"Use implicit derivatives to choose bounded branch capacity increase trials. Exact solves verify the staged proposal. The electrical case stays unchanged.","title":"Propose capacity increases","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"case_id":{"type":"string","description":"Active case ID from inspect_case."},"expected_revision":{"type":"string","description":"Current revision from inspect_case; a stale revision refuses the run."},"objective":{"type":"object","properties":{"kind":{"type":"string","enum":["weighted_lmp"],"description":"Implicit objective kind."},"weights":{"type":"array","minItems":1,"maxItems":16,"description":"Weighted LMP terms defining the minimized objective.","items":{"type":"object","properties":{"bus_id":{"type":"string","description":"Stable bus ID from query_network."},"weight":{"type":"number","description":"Coefficient applied to this bus LMP."}},"required":["bus_id","weight"],"additionalProperties":false}}},"required":["kind","weights"],"additionalProperties":false,"description":"Objective evaluated at each exact OPF solution."},"candidates":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"string"},"description":"Candidate branches whose capacities may increase."},"max_increase_per_branch_mw":{"type":"number","exclusiveMinimum":0,"description":"Largest proposed increase for one branch, MW."},"budget_mw":{"type":"number","exclusiveMinimum":0,"description":"Maximum sum of proposed capacity increases, MW."},"increment_mw":{"type":"number","exclusiveMinimum":0,"description":"Capacity increment used to construct trials, MW."},"max_changed_lines":{"type":"integer","minimum":1,"maximum":12,"description":"Maximum branches changed in the final proposal."},"exact_solve_budget":{"type":"integer","minimum":2,"maximum":32,"description":"Solve budget, including the starting point and all trials."}},"required":["case_id","expected_revision","objective","candidates","max_increase_per_branch_mw","budget_mw","increment_mw","max_changed_lines","exact_solve_budget"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"favicon":"/favicons/tellegen.dev.png","apiSurface":"spec","category":"Developer Tools","toolCount":20}}