{
  "concept": "7H",
  "artifact": "control-inventory",
  "capturedOn": "2026-09-23",
  "scope": [
    "Plan → Setup",
    "Plan → Inventory",
    "Simulate → Propagation",
    "Analyze → Interference",
    "Analyze → RF Diagnostics",
    "Analyze → Building entry",
    "Analyze → 5G Core",
    "Review → Data"
  ],
  "fieldNotes": {
    "default": "Observed in the running 28 GHz workspace or read from the corresponding component's initial state/default policy. Conditional inputs are marked conditional.",
    "persisted": "Whether the value currently participates in project/scenario/domain persistence. Component-local diagnostic options are not ScenarioRevision inputs.",
    "requestField": "Existing serialized request field; null means a UI-only action or local input with no direct field mapping."
  },
  "controls": [
    {
      "id": "setup.planning_mode",
      "component": "ControlPanel",
      "currentSection": "Plan → Setup",
      "domainField": "planningMode",
      "requestField": "request operation selection",
      "default": "single",
      "prerequisite": "None",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz",
        "6g research / 140 GHz"
      ],
      "uiControls": [
        {
          "id": "setup.planning_mode",
          "label": "setup planning mode",
          "domainField": "planningMode",
          "requestField": "request operation selection",
          "default": "single",
          "prerequisite": "None",
          "groupId": "setup.planning_mode",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        }
      ]
    },
    {
      "id": "setup.network_technology",
      "component": "ControlPanel",
      "currentSection": "Plan → Setup",
      "domainField": "settings.frequencyGHz; settings.propagationModelID",
      "requestField": "frequency_ghz; rf_profile.network_tech; rf_profile.propagation_model",
      "default": "5G mmWave / 28 GHz / urban_short_range; choices also include 4G LTE / 2.6 GHz and 6G research / 140 GHz",
      "prerequisite": "None",
      "status": "canonical; 6G choice is research-only",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz",
        "6g research / 140 GHz"
      ],
      "uiControls": [
        {
          "id": "setup.network_technology.4g",
          "label": "4G LTE · 2.6 GHz",
          "domainField": "settings.frequencyGHz; propagationModelID",
          "requestField": "frequency_ghz; rf_profile.network_tech; rf_profile.propagation_model",
          "default": "2.6 GHz; urban_short_range",
          "prerequisite": "None",
          "groupId": "setup.network_technology",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical; 6G choice is research-only",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        },
        {
          "id": "setup.network_technology.5g",
          "label": "5G mmWave · 28 GHz",
          "domainField": "settings.frequencyGHz; propagationModelID",
          "requestField": "frequency_ghz; rf_profile.network_tech; rf_profile.propagation_model",
          "default": "28 GHz; urban_short_range",
          "prerequisite": "None",
          "groupId": "setup.network_technology",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical; 6G choice is research-only",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        },
        {
          "id": "setup.network_technology.6g",
          "label": "6G research · 140 GHz",
          "domainField": "settings.frequencyGHz; propagationModelID",
          "requestField": "frequency_ghz; rf_profile.network_tech; rf_profile.propagation_model",
          "default": "140 GHz; research_sub_thz",
          "prerequisite": "None",
          "groupId": "setup.network_technology",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical; 6G choice is research-only",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        }
      ]
    },
    {
      "id": "setup.propagation_model",
      "component": "ControlPanel",
      "currentSection": "Plan → Setup",
      "domainField": "settings.propagationModelID",
      "requestField": "rf_profile.propagation_model",
      "default": "urban_short_range",
      "prerequisite": "Selected frequency/profile",
      "status": "canonical or research according to selected model",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "urban_short_range",
        "legacy_fspl_walls",
        "research_sub_thz"
      ],
      "uiControls": [
        {
          "id": "setup.propagation_model",
          "label": "setup propagation model",
          "domainField": "settings.propagationModelID",
          "requestField": "rf_profile.propagation_model",
          "default": "urban_short_range",
          "prerequisite": "Selected frequency/profile",
          "groupId": "setup.propagation_model",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "urban_short_range",
            "legacy_fspl_walls",
            "research_sub_thz"
          ],
          "status": "canonical or research according to selected model",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        }
      ]
    },
    {
      "id": "setup.tx_power",
      "component": "ControlPanel",
      "currentSection": "Plan → Setup",
      "domainField": "settings.txPowerDbm",
      "requestField": "tx_power_dbm; rf_profile.tx_power_dbm",
      "default": "30 dBm",
      "prerequisite": "None",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz",
        "6g research / 140 GHz"
      ],
      "uiControls": [
        {
          "id": "setup.tx_power",
          "label": "setup tx power",
          "domainField": "settings.txPowerDbm",
          "requestField": "tx_power_dbm; rf_profile.tx_power_dbm",
          "default": "30 dBm",
          "prerequisite": "None",
          "groupId": "setup.tx_power",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        }
      ]
    },
    {
      "id": "setup.select_network_cells",
      "component": "ControlPanel",
      "currentSection": "Plan → Setup",
      "domainField": "selectedTowerId or selectedNetworkTowerIds",
      "requestField": "tower coordinates or towers[]",
      "default": "Cell 26380 selected in the captured workspace",
      "prerequisite": "Dataset inventory loaded",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz",
        "6g research / 140 GHz"
      ],
      "uiControls": [
        {
          "id": "setup.select_network_cells",
          "label": "setup select network cells",
          "domainField": "selectedTowerId or selectedNetworkTowerIds",
          "requestField": "tower coordinates or towers[]",
          "default": "Cell 26380 selected in the captured workspace",
          "prerequisite": "Dataset inventory loaded",
          "groupId": "setup.select_network_cells",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Plan → Setup"
        }
      ]
    },
    {
      "id": "setup.run",
      "component": "CommandBar",
      "currentSection": "Global command bar, available from Plan / Simulate",
      "domainField": "none; begins current Run",
      "requestField": "buildSimulationPayload or network operation payload",
      "default": "Run Sector",
      "prerequisite": "One selected cell, or two selected cells for network operation; selected profile must be request-ready",
      "status": "canonical action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz",
        "6g research / 140 GHz"
      ],
      "uiControls": [
        {
          "id": "setup.run",
          "label": "setup run",
          "domainField": "none; begins current Run",
          "requestField": "buildSimulationPayload or network operation payload",
          "default": "Run Sector",
          "prerequisite": "One selected cell, or two selected cells for network operation; selected profile must be request-ready",
          "groupId": "setup.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical action",
          "component": "CommandBar",
          "currentSection": "Global command bar, available from Plan / Simulate"
        }
      ]
    },
    {
      "id": "inventory.search",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory",
      "domainField": "local query only",
      "requestField": null,
      "default": "empty query; first 250 matching cells shown",
      "prerequisite": "Inventory loaded",
      "status": "planning utility",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.search",
          "label": "inventory search",
          "domainField": "local query only",
          "default": "empty query; first 250 matching cells shown",
          "prerequisite": "Inventory loaded",
          "groupId": "inventory.search",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "planning utility",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory"
        }
      ]
    },
    {
      "id": "inventory.place_cell",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory",
      "domainField": "inventory cell; coordinates on map click",
      "requestField": "towers[].tower_lon/tower_lat",
      "default": "off",
      "prerequisite": "Map click",
      "status": "canonical inventory action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.place_cell",
          "label": "inventory place cell",
          "domainField": "inventory cell; coordinates on map click",
          "requestField": "towers[].tower_lon/tower_lat",
          "default": "off",
          "prerequisite": "Map click",
          "groupId": "inventory.place_cell",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical inventory action",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory"
        }
      ]
    },
    {
      "id": "inventory.import_cells",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory",
      "domainField": "inventory cells and per-cell rfProfile",
      "requestField": "towers[] and rf_profile",
      "default": "no file selected",
      "prerequisite": "Valid CSV / JSON / GeoJSON",
      "status": "canonical inventory action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.import_cells",
          "label": "inventory import cells",
          "domainField": "inventory cells and per-cell rfProfile",
          "requestField": "towers[] and rf_profile",
          "default": "no file selected",
          "prerequisite": "Valid CSV / JSON / GeoJSON",
          "groupId": "inventory.import_cells",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical inventory action",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory"
        }
      ]
    },
    {
      "id": "inventory.select_cell",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory",
      "domainField": "selectedTowerId / selectedNetworkTowerIds",
      "requestField": "tower or towers[]",
      "default": "Cell 26380 selected",
      "prerequisite": "Inventory loaded",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.select_cell",
          "label": "inventory select cell",
          "domainField": "selectedTowerId / selectedNetworkTowerIds",
          "requestField": "tower or towers[]",
          "default": "Cell 26380 selected",
          "prerequisite": "Inventory loaded",
          "groupId": "inventory.select_cell",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory"
        }
      ]
    },
    {
      "id": "inventory.duplicate_cell",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Cell editor",
      "domainField": "inventory cell and per-cell rfProfile",
      "requestField": "towers[] and rf_profile",
      "default": "not run",
      "prerequisite": "Editable selected cell",
      "status": "canonical inventory action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.duplicate_cell",
          "label": "inventory duplicate cell",
          "domainField": "inventory cell and per-cell rfProfile",
          "requestField": "towers[] and rf_profile",
          "default": "not run",
          "prerequisite": "Editable selected cell",
          "groupId": "inventory.duplicate_cell",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical inventory action",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Cell editor"
        }
      ]
    },
    {
      "id": "inventory.reset_profile",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Cell editor",
      "domainField": "selectedTower.rfProfile removed; location and identity retained",
      "requestField": "resolved rf_profile after defaults",
      "default": "not run; label was Reset to plan defaults",
      "prerequisite": "Selected cell",
      "status": "canonical inventory action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.reset_profile",
          "label": "inventory reset profile",
          "domainField": "selectedTower.rfProfile removed; location and identity retained",
          "requestField": "resolved rf_profile after defaults",
          "default": "not run; label was Reset to plan defaults",
          "prerequisite": "Selected cell",
          "groupId": "inventory.reset_profile",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical inventory action",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Cell editor"
        }
      ]
    },
    {
      "id": "inventory.delete_cell",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Cell editor",
      "domainField": "inventory cell removed",
      "requestField": "cell omitted from towers[]",
      "default": "not run",
      "prerequisite": "Editable selected cell",
      "status": "canonical inventory action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.delete_cell",
          "label": "inventory delete cell",
          "domainField": "inventory cell removed",
          "requestField": "cell omitted from towers[]",
          "default": "not run",
          "prerequisite": "Editable selected cell",
          "groupId": "inventory.delete_cell",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical inventory action",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Cell editor"
        }
      ]
    },
    {
      "id": "inventory.location",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Cell editor → Position",
      "domainField": "selectedTower.coordinates",
      "requestField": "tower_lon/tower_lat; towers[].tower_lon/tower_lat",
      "default": "Cell 26380 coordinates from local dataset",
      "prerequisite": "Cell selected",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.location",
          "label": "inventory location",
          "domainField": "selectedTower.coordinates",
          "requestField": "tower_lon/tower_lat; towers[].tower_lon/tower_lat",
          "default": "Cell 26380 coordinates from local dataset",
          "prerequisite": "Cell selected",
          "groupId": "inventory.location",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Cell editor → Position"
        }
      ]
    },
    {
      "id": "inventory.technology",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Carrier & channel",
      "domainField": "rfProfile.networkTech and technologyDefaults",
      "requestField": "rf_profile.network_tech",
      "default": "5g",
      "prerequisite": "Cell selected",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g",
        "5g",
        "6g research"
      ],
      "uiControls": [
        {
          "id": "inventory.technology",
          "label": "inventory technology",
          "domainField": "rfProfile.networkTech and technologyDefaults",
          "requestField": "rf_profile.network_tech",
          "default": "5g",
          "prerequisite": "Cell selected",
          "groupId": "inventory.technology",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g",
            "5g",
            "6g research"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Carrier & channel"
        }
      ]
    },
    {
      "id": "inventory.band",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Carrier & channel",
      "domainField": "rfProfile.band",
      "requestField": "rf_profile.band",
      "default": "NR n257",
      "prerequisite": "Cell selected",
      "status": "advanced carrier detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g",
        "5g",
        "6g research"
      ],
      "uiControls": [
        {
          "id": "inventory.band",
          "label": "inventory band",
          "domainField": "rfProfile.band",
          "requestField": "rf_profile.band",
          "default": "NR n257",
          "prerequisite": "Cell selected",
          "groupId": "inventory.band",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g",
            "5g",
            "6g research"
          ],
          "status": "advanced carrier detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Carrier & channel"
        }
      ]
    },
    {
      "id": "inventory.channel",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Carrier & channel",
      "domainField": "rfProfile.channelId",
      "requestField": "rf_profile.channel_id",
      "default": "CH-1",
      "prerequisite": "Cell selected",
      "status": "advanced carrier detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g",
        "5g",
        "6g research"
      ],
      "uiControls": [
        {
          "id": "inventory.channel",
          "label": "inventory channel",
          "domainField": "rfProfile.channelId",
          "requestField": "rf_profile.channel_id",
          "default": "CH-1",
          "prerequisite": "Cell selected",
          "groupId": "inventory.channel",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g",
            "5g",
            "6g research"
          ],
          "status": "advanced carrier detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Carrier & channel"
        }
      ]
    },
    {
      "id": "inventory.duplex",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Carrier & channel",
      "domainField": "rfProfile.duplexMode",
      "requestField": "rf_profile.duplex_mode",
      "default": "tdd",
      "prerequisite": "Cell selected",
      "status": "advanced carrier detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g",
        "5g",
        "6g research"
      ],
      "uiControls": [
        {
          "id": "inventory.duplex",
          "label": "inventory duplex",
          "domainField": "rfProfile.duplexMode",
          "requestField": "rf_profile.duplex_mode",
          "default": "tdd",
          "prerequisite": "Cell selected",
          "groupId": "inventory.duplex",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g",
            "5g",
            "6g research"
          ],
          "status": "advanced carrier detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Carrier & channel"
        }
      ]
    },
    {
      "id": "inventory.frequency",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.frequencyGHz",
      "requestField": "rf_profile.frequency_ghz",
      "default": "28 GHz",
      "prerequisite": "Cell selected; must match selected technology",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz",
        "6g research / 140 GHz"
      ],
      "uiControls": [
        {
          "id": "inventory.frequency",
          "label": "inventory frequency",
          "domainField": "rfProfile.frequencyGHz",
          "requestField": "rf_profile.frequency_ghz",
          "default": "28 GHz",
          "prerequisite": "Cell selected; must match selected technology",
          "groupId": "inventory.frequency",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz",
            "6g research / 140 GHz"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.bandwidth",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.bandwidthMHz",
      "requestField": "rf_profile.bandwidth_mhz",
      "default": "100 MHz",
      "prerequisite": "Cell selected; must satisfy profile limits",
      "status": "canonical carrier assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "4g",
        "5g",
        "6g research"
      ],
      "uiControls": [
        {
          "id": "inventory.bandwidth",
          "label": "inventory bandwidth",
          "domainField": "rfProfile.bandwidthMHz",
          "requestField": "rf_profile.bandwidth_mhz",
          "default": "100 MHz",
          "prerequisite": "Cell selected; must satisfy profile limits",
          "groupId": "inventory.bandwidth",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "4g",
            "5g",
            "6g research"
          ],
          "status": "canonical carrier assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.tx_power",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.txPowerDbm",
      "requestField": "rf_profile.tx_power_dbm",
      "default": "30 dBm",
      "prerequisite": "Cell selected",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.tx_power",
          "label": "inventory tx power",
          "domainField": "rfProfile.txPowerDbm",
          "requestField": "rf_profile.tx_power_dbm",
          "default": "30 dBm",
          "prerequisite": "Cell selected",
          "groupId": "inventory.tx_power",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.tx_gain",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.antennaGainDbi",
      "requestField": "rf_profile.tx_antenna_gain_dbi",
      "default": "25 dBi",
      "prerequisite": "Cell selected",
      "status": "advanced link budget",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.tx_gain",
          "label": "inventory tx gain",
          "domainField": "rfProfile.antennaGainDbi",
          "requestField": "rf_profile.tx_antenna_gain_dbi",
          "default": "25 dBi",
          "prerequisite": "Cell selected",
          "groupId": "inventory.tx_gain",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced link budget",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.rx_gain",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.rxAntennaGainDbi",
      "requestField": "rf_profile.rx_antenna_gain_dbi",
      "default": "0 dBi",
      "prerequisite": "Cell selected",
      "status": "advanced link budget",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.rx_gain",
          "label": "inventory rx gain",
          "domainField": "rfProfile.rxAntennaGainDbi",
          "requestField": "rf_profile.rx_antenna_gain_dbi",
          "default": "0 dBi",
          "prerequisite": "Cell selected",
          "groupId": "inventory.rx_gain",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced link budget",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.system_loss",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.systemLossDb",
      "requestField": "rf_profile.system_loss_db",
      "default": "0 dB",
      "prerequisite": "Cell selected",
      "status": "advanced link budget",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.system_loss",
          "label": "inventory system loss",
          "domainField": "rfProfile.systemLossDb",
          "requestField": "rf_profile.system_loss_db",
          "default": "0 dB",
          "prerequisite": "Cell selected",
          "groupId": "inventory.system_loss",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced link budget",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.polarization_loss",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.polarizationLossDb",
      "requestField": "rf_profile.polarization_loss_db",
      "default": "0 dB",
      "prerequisite": "Cell selected",
      "status": "advanced link budget",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.polarization_loss",
          "label": "inventory polarization loss",
          "domainField": "rfProfile.polarizationLossDb",
          "requestField": "rf_profile.polarization_loss_db",
          "default": "0 dB",
          "prerequisite": "Cell selected",
          "groupId": "inventory.polarization_loss",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced link budget",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.radius",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.radiusMeters",
      "requestField": "rf_profile.radius_m",
      "default": "400 m",
      "prerequisite": "Cell selected",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.radius",
          "label": "inventory radius",
          "domainField": "rfProfile.radiusMeters",
          "requestField": "rf_profile.radius_m",
          "default": "400 m",
          "prerequisite": "Cell selected",
          "groupId": "inventory.radius",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.beam_width",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.beamWidthDeg",
      "requestField": "rf_profile.beam_width",
      "default": "120°",
      "prerequisite": "Cell selected",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.beam_width",
          "label": "inventory beam width",
          "domainField": "rfProfile.beamWidthDeg",
          "requestField": "rf_profile.beam_width",
          "default": "120°",
          "prerequisite": "Cell selected",
          "groupId": "inventory.beam_width",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.antenna_height",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.antennaHeightM",
      "requestField": "rf_profile.antenna_height_m",
      "default": "25 m",
      "prerequisite": "Cell selected",
      "status": "canonical antenna assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.antenna_height",
          "label": "inventory antenna height",
          "domainField": "rfProfile.antennaHeightM",
          "requestField": "rf_profile.antenna_height_m",
          "default": "25 m",
          "prerequisite": "Cell selected",
          "groupId": "inventory.antenna_height",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical antenna assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.mechanical_tilt",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.mechanicalDowntiltDeg",
      "requestField": "rf_profile.mechanical_downtilt_deg",
      "default": "0°",
      "prerequisite": "Cell selected",
      "status": "advanced antenna detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.mechanical_tilt",
          "label": "inventory mechanical tilt",
          "domainField": "rfProfile.mechanicalDowntiltDeg",
          "requestField": "rf_profile.mechanical_downtilt_deg",
          "default": "0°",
          "prerequisite": "Cell selected",
          "groupId": "inventory.mechanical_tilt",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced antenna detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.electrical_tilt",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.electricalDowntiltDeg",
      "requestField": "rf_profile.electrical_downtilt_deg",
      "default": "0°",
      "prerequisite": "Cell selected",
      "status": "advanced antenna detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.electrical_tilt",
          "label": "inventory electrical tilt",
          "domainField": "rfProfile.electricalDowntiltDeg",
          "requestField": "rf_profile.electrical_downtilt_deg",
          "default": "0°",
          "prerequisite": "Cell selected",
          "groupId": "inventory.electrical_tilt",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced antenna detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.orientation",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.orientationDeg",
      "requestField": "rf_profile.orientation_deg",
      "default": "0°",
      "prerequisite": "Cell selected",
      "status": "canonical antenna assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.orientation",
          "label": "inventory orientation",
          "domainField": "rfProfile.orientationDeg",
          "requestField": "rf_profile.orientation_deg",
          "default": "0°",
          "prerequisite": "Cell selected",
          "groupId": "inventory.orientation",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical antenna assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.cell_load",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.loadFactor",
      "requestField": "rf_profile.load_factor",
      "default": "0.7",
      "prerequisite": "Cell selected",
      "status": "advanced radio-quality assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "radio quality supported profiles"
      ],
      "uiControls": [
        {
          "id": "inventory.cell_load",
          "label": "inventory cell load",
          "domainField": "rfProfile.loadFactor",
          "requestField": "rf_profile.load_factor",
          "default": "0.7",
          "prerequisite": "Cell selected",
          "groupId": "inventory.cell_load",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "radio quality supported profiles"
          ],
          "status": "advanced radio-quality assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.reuse",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.reuseFactor",
      "requestField": "rf_profile.reuse_factor",
      "default": "1",
      "prerequisite": "Cell selected",
      "status": "advanced radio-quality assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "radio quality supported profiles"
      ],
      "uiControls": [
        {
          "id": "inventory.reuse",
          "label": "inventory reuse",
          "domainField": "rfProfile.reuseFactor",
          "requestField": "rf_profile.reuse_factor",
          "default": "1",
          "prerequisite": "Cell selected",
          "groupId": "inventory.reuse",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "radio quality supported profiles"
          ],
          "status": "advanced radio-quality assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.pci",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.pci",
      "requestField": "rf_profile.pci",
      "default": "null / optional",
      "prerequisite": "Cell selected; technology-specific range",
      "status": "advanced carrier detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g",
        "5g",
        "6g research"
      ],
      "uiControls": [
        {
          "id": "inventory.pci",
          "label": "inventory pci",
          "domainField": "rfProfile.pci",
          "requestField": "rf_profile.pci",
          "default": "null / optional",
          "prerequisite": "Cell selected; technology-specific range",
          "groupId": "inventory.pci",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g",
            "5g",
            "6g research"
          ],
          "status": "advanced carrier detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.receiver_height",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.receiverHeightM",
      "requestField": "rf_profile.receiver_height_m",
      "default": "1.5 m",
      "prerequisite": "Cell selected",
      "status": "canonical receiver assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.receiver_height",
          "label": "inventory receiver height",
          "domainField": "rfProfile.receiverHeightM",
          "requestField": "rf_profile.receiver_height_m",
          "default": "1.5 m",
          "prerequisite": "Cell selected",
          "groupId": "inventory.receiver_height",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical receiver assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.horizontal_pattern",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.horizontalPatternId",
      "requestField": "rf_profile.horizontal_pattern_id",
      "default": "ideal-sector",
      "prerequisite": "Cell selected",
      "status": "advanced antenna detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.horizontal_pattern",
          "label": "inventory horizontal pattern",
          "domainField": "rfProfile.horizontalPatternId",
          "requestField": "rf_profile.horizontal_pattern_id",
          "default": "ideal-sector",
          "prerequisite": "Cell selected",
          "groupId": "inventory.horizontal_pattern",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced antenna detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.vertical_pattern",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver",
      "domainField": "rfProfile.verticalPatternId",
      "requestField": "rf_profile.vertical_pattern_id",
      "default": "flat",
      "prerequisite": "Cell selected",
      "status": "advanced antenna detail",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.vertical_pattern",
          "label": "inventory vertical pattern",
          "domainField": "rfProfile.verticalPatternId",
          "requestField": "rf_profile.vertical_pattern_id",
          "default": "flat",
          "prerequisite": "Cell selected",
          "groupId": "inventory.vertical_pattern",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced antenna detail",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver"
        }
      ]
    },
    {
      "id": "inventory.receiver_sensitivity_mode",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity",
      "domainField": "rfProfile.receiverSensitivityMode",
      "requestField": "rf_profile.receiver_sensitivity_mode",
      "default": "manual",
      "prerequisite": "Cell selected",
      "status": "canonical receiver assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.receiver_sensitivity_mode",
          "label": "inventory receiver sensitivity mode",
          "domainField": "rfProfile.receiverSensitivityMode",
          "requestField": "rf_profile.receiver_sensitivity_mode",
          "default": "manual",
          "prerequisite": "Cell selected",
          "groupId": "inventory.receiver_sensitivity_mode",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical receiver assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity"
        }
      ]
    },
    {
      "id": "inventory.manual_sensitivity",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity",
      "domainField": "rfProfile.receiverSensitivityDbm",
      "requestField": "rf_profile.receiver_sensitivity_dbm",
      "default": "-115 dBm",
      "prerequisite": "Cell selected and manual threshold mode",
      "status": "canonical receiver assumption",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.manual_sensitivity",
          "label": "inventory manual sensitivity",
          "domainField": "rfProfile.receiverSensitivityDbm",
          "requestField": "rf_profile.receiver_sensitivity_dbm",
          "default": "-115 dBm",
          "prerequisite": "Cell selected and manual threshold mode",
          "groupId": "inventory.manual_sensitivity",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical receiver assumption",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity"
        }
      ]
    },
    {
      "id": "inventory.receiver_noise_bandwidth",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity",
      "domainField": "rfProfile.receiverNoiseBandwidthHz",
      "requestField": "rf_profile.receiver_noise_bandwidth_hz",
      "default": "100 MHz at 28 GHz",
      "prerequisite": "Cell selected and derived threshold mode",
      "status": "advanced receiver/noise configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.receiver_noise_bandwidth",
          "label": "inventory receiver noise bandwidth",
          "domainField": "rfProfile.receiverNoiseBandwidthHz",
          "requestField": "rf_profile.receiver_noise_bandwidth_hz",
          "default": "100 MHz at 28 GHz",
          "prerequisite": "Cell selected and derived threshold mode",
          "groupId": "inventory.receiver_noise_bandwidth",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced receiver/noise configuration",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity"
        }
      ]
    },
    {
      "id": "inventory.receiver_noise_figure",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity",
      "domainField": "rfProfile.receiverNoiseFigureDb",
      "requestField": "rf_profile.receiver_noise_figure_db",
      "default": "7 dB",
      "prerequisite": "Cell selected and derived threshold mode",
      "status": "advanced receiver/noise configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.receiver_noise_figure",
          "label": "inventory receiver noise figure",
          "domainField": "rfProfile.receiverNoiseFigureDb",
          "requestField": "rf_profile.receiver_noise_figure_db",
          "default": "7 dB",
          "prerequisite": "Cell selected and derived threshold mode",
          "groupId": "inventory.receiver_noise_figure",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced receiver/noise configuration",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity"
        }
      ]
    },
    {
      "id": "inventory.receiver_required_snr",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity",
      "domainField": "rfProfile.receiverRequiredSnrDb",
      "requestField": "rf_profile.receiver_required_snr_db",
      "default": "3 dB",
      "prerequisite": "Cell selected and derived threshold mode",
      "status": "advanced receiver/noise configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.receiver_required_snr",
          "label": "inventory receiver required snr",
          "domainField": "rfProfile.receiverRequiredSnrDb",
          "requestField": "rf_profile.receiver_required_snr_db",
          "default": "3 dB",
          "prerequisite": "Cell selected and derived threshold mode",
          "groupId": "inventory.receiver_required_snr",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced receiver/noise configuration",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity"
        }
      ]
    },
    {
      "id": "inventory.receiver_margin",
      "component": "InventoryPanel",
      "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity",
      "domainField": "rfProfile.receiverMarginDb",
      "requestField": "rf_profile.receiver_margin_db",
      "default": "0 dB",
      "prerequisite": "Cell selected and derived threshold mode",
      "status": "advanced receiver/noise configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "inventory.receiver_margin",
          "label": "inventory receiver margin",
          "domainField": "rfProfile.receiverMarginDb",
          "requestField": "rf_profile.receiver_margin_db",
          "default": "0 dB",
          "prerequisite": "Cell selected and derived threshold mode",
          "groupId": "inventory.receiver_margin",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced receiver/noise configuration",
          "component": "InventoryPanel",
          "currentSection": "Plan → Inventory → Antenna & receiver → Receiver sensitivity"
        }
      ]
    },
    {
      "id": "propagation.ray_count",
      "component": "ControlPanel",
      "currentSection": "Simulate → Propagation",
      "domainField": "settings.rayCount",
      "requestField": "rays",
      "default": "120",
      "prerequisite": "None",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "propagation.ray_count",
          "label": "propagation ray count",
          "domainField": "settings.rayCount",
          "requestField": "rays",
          "default": "120",
          "prerequisite": "None",
          "groupId": "propagation.ray_count",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Simulate → Propagation"
        }
      ]
    },
    {
      "id": "propagation.radius",
      "component": "ControlPanel",
      "currentSection": "Simulate → Propagation",
      "domainField": "settings.radiusMeters",
      "requestField": "radius_m",
      "default": "400 m",
      "prerequisite": "None",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "propagation.radius",
          "label": "propagation radius",
          "domainField": "settings.radiusMeters",
          "requestField": "radius_m",
          "default": "400 m",
          "prerequisite": "None",
          "groupId": "propagation.radius",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Simulate → Propagation"
        }
      ]
    },
    {
      "id": "propagation.azimuth",
      "component": "ControlPanel",
      "currentSection": "Simulate → Propagation",
      "domainField": "settings.azimuthDeg; networkAzimuths",
      "requestField": "azimuth; towers[].azimuth",
      "default": "90° single-cell fallback",
      "prerequisite": "Selected cell/network",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "propagation.azimuth",
          "label": "propagation azimuth",
          "domainField": "settings.azimuthDeg; networkAzimuths",
          "requestField": "azimuth; towers[].azimuth",
          "default": "90° single-cell fallback",
          "prerequisite": "Selected cell/network",
          "groupId": "propagation.azimuth",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Simulate → Propagation"
        }
      ]
    },
    {
      "id": "propagation.beam_width",
      "component": "ControlPanel",
      "currentSection": "Simulate → Propagation",
      "domainField": "settings.beamWidthDeg",
      "requestField": "beam_width",
      "default": "120°",
      "prerequisite": "None",
      "status": "canonical",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": true,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "propagation.beam_width",
          "label": "propagation beam width",
          "domainField": "settings.beamWidthDeg",
          "requestField": "beam_width",
          "default": "120°",
          "prerequisite": "None",
          "groupId": "propagation.beam_width",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": true,
          "supportedProfiles": [
            "all"
          ],
          "status": "canonical",
          "component": "ControlPanel",
          "currentSection": "Simulate → Propagation"
        }
      ]
    },
    {
      "id": "propagation.optimize_sector",
      "component": "ControlPanel",
      "currentSection": "Simulate → Propagation",
      "domainField": "azimuth and optimization result state",
      "requestField": "/api/optimize request",
      "default": "not run",
      "prerequisite": "Selected transmitter cell",
      "status": "advanced optimization action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "canonical supported profiles"
      ],
      "uiControls": [
        {
          "id": "propagation.optimize_sector",
          "label": "propagation optimize sector",
          "domainField": "azimuth and optimization result state",
          "requestField": "/api/optimize request",
          "default": "not run",
          "prerequisite": "Selected transmitter cell",
          "groupId": "propagation.optimize_sector",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "canonical supported profiles"
          ],
          "status": "advanced optimization action",
          "component": "ControlPanel",
          "currentSection": "Simulate → Propagation"
        }
      ]
    },
    {
      "id": "propagation.objective_priorities",
      "component": "OptimizationGoalsPanel",
      "currentSection": "Simulate → Propagation → Network optimization",
      "domainField": "optimizationConfig.objectives[].weight",
      "requestField": "optimization.objectives[]",
      "default": "Demand 50, Residential 50, Propagation reach 50, Reduce overlap 50, Radio quality 0",
      "prerequisite": "Network planning mode",
      "status": "advanced optimizer configuration",
      "rfAffecting": false,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all; Radio quality unsupported at 140 GHz"
      ],
      "uiControls": [
        {
          "id": "propagation.objective.demand",
          "label": "Demand importance",
          "domainField": "optimizationConfig.objectives[demand].weight",
          "requestField": "optimization.objectives[demand].weight",
          "default": "50",
          "prerequisite": "Network mode",
          "groupId": "propagation.objective_priorities",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all; Radio quality unsupported at 140 GHz"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Network optimization"
        },
        {
          "id": "propagation.objective.residential",
          "label": "Residential importance",
          "domainField": "optimizationConfig.objectives[residential].weight",
          "requestField": "optimization.objectives[residential].weight",
          "default": "50",
          "prerequisite": "Network mode",
          "groupId": "propagation.objective_priorities",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all; Radio quality unsupported at 140 GHz"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Network optimization"
        },
        {
          "id": "propagation.objective.coverage",
          "label": "Propagation reach importance",
          "domainField": "optimizationConfig.objectives[coverage].weight",
          "requestField": "optimization.objectives[coverage].weight",
          "default": "50",
          "prerequisite": "Network mode",
          "groupId": "propagation.objective_priorities",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all; Radio quality unsupported at 140 GHz"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Network optimization"
        },
        {
          "id": "propagation.objective.overlap",
          "label": "Reduce overlap importance",
          "domainField": "optimizationConfig.objectives[overlap].weight",
          "requestField": "optimization.objectives[overlap].weight",
          "default": "50",
          "prerequisite": "Network mode",
          "groupId": "propagation.objective_priorities",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all; Radio quality unsupported at 140 GHz"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Network optimization"
        },
        {
          "id": "propagation.objective.radio_quality",
          "label": "Radio quality importance",
          "domainField": "optimizationConfig.objectives[radio_quality].weight",
          "requestField": "optimization.objectives[radio_quality].weight",
          "default": "0",
          "prerequisite": "Network mode; unsupported for 140 GHz profile",
          "groupId": "propagation.objective_priorities",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all; Radio quality unsupported at 140 GHz"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Network optimization"
        }
      ]
    },
    {
      "id": "propagation.feasibility_constraints",
      "component": "OptimizationGoalsPanel",
      "currentSection": "Simulate → Propagation → Feasibility constraints",
      "domainField": "optimizationConfig.constraints",
      "requestField": "optimization.constraints",
      "default": "all unset",
      "prerequisite": "Network planning mode",
      "status": "advanced optimizer configuration",
      "rfAffecting": false,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all"
      ],
      "uiControls": [
        {
          "id": "propagation.constraint.min_coverage_score",
          "label": "Minimum propagation reach",
          "domainField": "optimizationConfig.constraints.min_coverage_score",
          "requestField": "optimization.constraints.min_coverage_score",
          "default": "unset",
          "prerequisite": "Network mode; optional",
          "groupId": "propagation.feasibility_constraints",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Feasibility constraints"
        },
        {
          "id": "propagation.constraint.min_unique_demand_buildings",
          "label": "Minimum demand buildings",
          "domainField": "optimizationConfig.constraints.min_unique_demand_buildings",
          "requestField": "optimization.constraints.min_unique_demand_buildings",
          "default": "unset",
          "prerequisite": "Network mode; optional",
          "groupId": "propagation.feasibility_constraints",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Feasibility constraints"
        },
        {
          "id": "propagation.constraint.min_unique_residential_buildings",
          "label": "Minimum residential buildings",
          "domainField": "optimizationConfig.constraints.min_unique_residential_buildings",
          "requestField": "optimization.constraints.min_unique_residential_buildings",
          "default": "unset",
          "prerequisite": "Network mode; optional",
          "groupId": "propagation.feasibility_constraints",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Feasibility constraints"
        },
        {
          "id": "propagation.constraint.max_overlap_buildings",
          "label": "Maximum overlap buildings",
          "domainField": "optimizationConfig.constraints.max_overlap_buildings",
          "requestField": "optimization.constraints.max_overlap_buildings",
          "default": "unset",
          "prerequisite": "Network mode; optional",
          "groupId": "propagation.feasibility_constraints",
          "rfAffecting": false,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all"
          ],
          "status": "advanced optimizer configuration",
          "component": "OptimizationGoalsPanel",
          "currentSection": "Simulate → Propagation → Feasibility constraints"
        }
      ]
    },
    {
      "id": "path_profile.receiver_pick",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "pathProfileEndpoint",
      "requestField": "receiver.lon/lat",
      "default": "no receiver selected",
      "prerequisite": "Selected transmitter cell",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "terrain-profile",
        "urban-short-range",
        "research-sub-thz"
      ],
      "uiControls": [
        {
          "id": "path_profile.receiver_pick",
          "label": "path profile receiver pick",
          "domainField": "pathProfileEndpoint",
          "requestField": "receiver.lon/lat",
          "default": "no receiver selected",
          "prerequisite": "Selected transmitter cell",
          "groupId": "path_profile.receiver_pick",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "terrain-profile",
            "urban-short-range",
            "research-sub-thz"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "path_profile.receiver_coordinates",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "pathProfileEndpoint",
      "requestField": "receiver.lon/lat",
      "default": "empty until map receiver chosen",
      "prerequisite": "Selected transmitter cell",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "terrain-profile",
        "urban-short-range",
        "research-sub-thz"
      ],
      "uiControls": [
        {
          "id": "path_profile.receiver_coordinates",
          "label": "path profile receiver coordinates",
          "domainField": "pathProfileEndpoint",
          "requestField": "receiver.lon/lat",
          "default": "empty until map receiver chosen",
          "prerequisite": "Selected transmitter cell",
          "groupId": "path_profile.receiver_coordinates",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "terrain-profile",
            "urban-short-range",
            "research-sub-thz"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "path_profile.model_profile",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "local options.modelProfile",
      "requestField": "model_profile",
      "default": "frequency-derived urban-short-range at 28 GHz",
      "prerequisite": "Applicable frequency/profile",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "terrain-profile",
        "urban-short-range",
        "research-sub-thz"
      ],
      "uiControls": [
        {
          "id": "path_profile.model_profile",
          "label": "path profile model profile",
          "domainField": "local options.modelProfile",
          "requestField": "model_profile",
          "default": "frequency-derived urban-short-range at 28 GHz",
          "prerequisite": "Applicable frequency/profile",
          "groupId": "path_profile.model_profile",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "terrain-profile",
            "urban-short-range",
            "research-sub-thz"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "path_profile.building_treatment",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "local options.buildingLossMode",
      "requestField": "fidelity.building_loss_mode",
      "default": "screen-diffraction",
      "prerequisite": "None",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all diagnostic profiles"
      ],
      "uiControls": [
        {
          "id": "path_profile.building_treatment",
          "label": "path profile building treatment",
          "domainField": "local options.buildingLossMode",
          "requestField": "fidelity.building_loss_mode",
          "default": "screen-diffraction",
          "prerequisite": "None",
          "groupId": "path_profile.building_treatment",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "path_profile.sample_spacing",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "local options.sampleSpacingM",
      "requestField": "sample_spacing_m",
      "default": "10 m",
      "prerequisite": "2–100 m",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all diagnostic profiles"
      ],
      "uiControls": [
        {
          "id": "path_profile.sample_spacing",
          "label": "path profile sample spacing",
          "domainField": "local options.sampleSpacingM",
          "requestField": "sample_spacing_m",
          "default": "10 m",
          "prerequisite": "2–100 m",
          "groupId": "path_profile.sample_spacing",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "path_profile.shadow_sigma",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "local options.shadowSigmaDb",
      "requestField": "fidelity.shadow_sigma_db",
      "default": "6 dB",
      "prerequisite": "0–30 dB",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all diagnostic profiles"
      ],
      "uiControls": [
        {
          "id": "path_profile.shadow_sigma",
          "label": "path profile shadow sigma",
          "domainField": "local options.shadowSigmaDb",
          "requestField": "fidelity.shadow_sigma_db",
          "default": "6 dB",
          "prerequisite": "0–30 dB",
          "groupId": "path_profile.shadow_sigma",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "path_profile.environmental_sensitivity",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Environmental sensitivity",
      "domainField": "local options clutter/vegetation/gas/rain fields",
      "requestField": "fidelity.clutter_specific_attenuation_db_per_km; vegetation_depth_m; vegetation_specific_attenuation_db_per_m; gas_specific_attenuation_db_per_km; rain_specific_attenuation_db_per_km",
      "default": "all 0",
      "prerequisite": "None",
      "status": "diagnostic",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all diagnostic profiles"
      ],
      "uiControls": [
        {
          "id": "path_profile.clutter",
          "label": "Clutter attenuation",
          "domainField": "local options.clutterSpecificAttenuationDbPerKm",
          "requestField": "fidelity.clutter_specific_attenuation_db_per_km",
          "default": "0 dB/km",
          "prerequisite": "Environmental sensitivity details",
          "groupId": "path_profile.environmental_sensitivity",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Environmental sensitivity"
        },
        {
          "id": "path_profile.vegetation_depth",
          "label": "Vegetation depth",
          "domainField": "local options.vegetationDepthM",
          "requestField": "fidelity.vegetation_depth_m",
          "default": "0 m",
          "prerequisite": "Environmental sensitivity details",
          "groupId": "path_profile.environmental_sensitivity",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Environmental sensitivity"
        },
        {
          "id": "path_profile.vegetation_attenuation",
          "label": "Vegetation attenuation",
          "domainField": "local options.vegetationSpecificAttenuationDbPerM",
          "requestField": "fidelity.vegetation_specific_attenuation_db_per_m",
          "default": "0 dB/m",
          "prerequisite": "Environmental sensitivity details",
          "groupId": "path_profile.environmental_sensitivity",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Environmental sensitivity"
        },
        {
          "id": "path_profile.gas_attenuation",
          "label": "Atmospheric gas attenuation",
          "domainField": "local options.gasSpecificAttenuationDbPerKm",
          "requestField": "fidelity.gas_specific_attenuation_db_per_km",
          "default": "0 dB/km",
          "prerequisite": "Environmental sensitivity details",
          "groupId": "path_profile.environmental_sensitivity",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Environmental sensitivity"
        },
        {
          "id": "path_profile.rain_attenuation",
          "label": "Rain attenuation",
          "domainField": "local options.rainSpecificAttenuationDbPerKm",
          "requestField": "fidelity.rain_specific_attenuation_db_per_km",
          "default": "0 dB/km",
          "prerequisite": "Environmental sensitivity details",
          "groupId": "path_profile.environmental_sensitivity",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Environmental sensitivity"
        }
      ]
    },
    {
      "id": "path_profile.run",
      "component": "PathProfilePanel",
      "currentSection": "Simulate → Propagation → Vertical path profile",
      "domainField": "pathProfile result state",
      "requestField": "/api/path-profile",
      "default": "not run",
      "prerequisite": "Transmitter plus receiver point",
      "status": "diagnostic action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all diagnostic profiles"
      ],
      "uiControls": [
        {
          "id": "path_profile.run",
          "label": "path profile run",
          "domainField": "pathProfile result state",
          "requestField": "/api/path-profile",
          "default": "not run",
          "prerequisite": "Transmitter plus receiver point",
          "groupId": "path_profile.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all diagnostic profiles"
          ],
          "status": "diagnostic action",
          "component": "PathProfilePanel",
          "currentSection": "Simulate → Propagation → Vertical path profile"
        }
      ]
    },
    {
      "id": "propagation.sub_thz_reference",
      "component": "SubTHZReferencePanel",
      "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference",
      "domainField": "local panel options; result held by isolated analysis state",
      "requestField": "/api/sub-thz-reference; frequency_ghz, transmitter, receiver, atmosphere, rain, local_fog, optional link_budget",
      "default": "140 GHz; 25 m TX; 1.5 m RX; 1013.25 hPa; 288.15 K; 7.5 g/m³; rain/fog/link budget off",
      "prerequisite": "Selected transmitter plus map receiver",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
      ],
      "uiControls": [
        {
          "id": "sub_thz.frequency",
          "label": "Frequency",
          "domainField": "local options.frequencyGHz",
          "requestField": "frequency_ghz",
          "default": "140 GHz",
          "prerequisite": "Panel default",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.tx_height",
          "label": "TX height",
          "domainField": "local options.txHeightM",
          "requestField": "transmitter.height_m",
          "default": "25 m",
          "prerequisite": "Panel default",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.rx_height",
          "label": "RX height",
          "domainField": "local options.rxHeightM",
          "requestField": "receiver.height_m",
          "default": "1.5 m",
          "prerequisite": "Panel default",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.pressure",
          "label": "Pressure",
          "domainField": "local options.pressureHpa",
          "requestField": "atmosphere.pressure_hpa",
          "default": "1013.25 hPa",
          "prerequisite": "Panel default",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.temperature",
          "label": "Temperature",
          "domainField": "local options.temperatureK",
          "requestField": "atmosphere.temperature_k",
          "default": "288.15 K",
          "prerequisite": "Panel default",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.water_vapour",
          "label": "Water vapour density",
          "domainField": "local options.waterVapourDensityGm3",
          "requestField": "atmosphere.water_vapour_density_g_m3",
          "default": "7.5 g/m³",
          "prerequisite": "Panel default",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.rain_enabled",
          "label": "Include P.838 rain",
          "domainField": "local options.rainEnabled",
          "requestField": "rain.enabled",
          "default": "false",
          "prerequisite": "Optional",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.rain_rate",
          "label": "Rain rate",
          "domainField": "local options.rainRateMmh",
          "requestField": "rain.rain_rate_mm_h",
          "default": "25 mm/h",
          "prerequisite": "Rain enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.rain_polarization",
          "label": "Rain polarization",
          "domainField": "local options.rainPolarization",
          "requestField": "rain.polarization",
          "default": "circular",
          "prerequisite": "Rain enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.rain_polarization_tilt",
          "label": "Rain polarization tilt",
          "domainField": "local options.rainPolarizationTiltDeg",
          "requestField": "rain.polarization_tilt_deg",
          "default": "45°",
          "prerequisite": "Linear polarization",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.local_fog_enabled",
          "label": "Include local P.840 fog",
          "domainField": "local options.localFogEnabled",
          "requestField": "local_fog.enabled",
          "default": "false",
          "prerequisite": "Optional",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.local_fog_density",
          "label": "Liquid water density",
          "domainField": "local options.localFogDensityGm3",
          "requestField": "local_fog.liquid_water_density_g_m3",
          "default": "0.5 g/m³",
          "prerequisite": "Local fog enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.local_fog_temperature",
          "label": "Fog temperature",
          "domainField": "local options.localFogTemperatureK",
          "requestField": "local_fog.temperature_k",
          "default": "288.15 K",
          "prerequisite": "Local fog enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.link_budget_enabled",
          "label": "Include explicit link budget",
          "domainField": "local options.linkBudgetEnabled",
          "requestField": "link_budget object presence",
          "default": "false",
          "prerequisite": "Optional",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.conducted_tx_power",
          "label": "Conducted TX power",
          "domainField": "local options.conductedTxPowerDbm",
          "requestField": "link_budget.conducted_tx_power_dbm",
          "default": "30 dBm",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.tx_gain",
          "label": "TX gain",
          "domainField": "local options.txGainDbi",
          "requestField": "link_budget.tx_gain_dbi",
          "default": "25 dBi",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.rx_gain",
          "label": "RX gain",
          "domainField": "local options.rxGainDbi",
          "requestField": "link_budget.rx_gain_dbi",
          "default": "0 dBi",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.tx_pattern_attenuation",
          "label": "TX pattern attenuation",
          "domainField": "local options.txPatternAttenuationDb",
          "requestField": "link_budget.tx_pattern_attenuation_db",
          "default": "0 dB",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.system_loss",
          "label": "System loss",
          "domainField": "local options.systemLossDb",
          "requestField": "link_budget.system_loss_db",
          "default": "0 dB",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.polarization_loss",
          "label": "Polarization loss",
          "domainField": "local options.polarizationLossDb",
          "requestField": "link_budget.polarization_loss_db",
          "default": "0 dB",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        },
        {
          "id": "sub_thz.calibration",
          "label": "Calibration offset",
          "domainField": "local options.calibrationOffsetDb",
          "requestField": "link_budget.calibration_offset_db",
          "default": "0 dB",
          "prerequisite": "Link budget enabled",
          "groupId": "propagation.sub_thz_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "research reference; atmosphere 1–1000 GHz, local fog within implementation envelope"
          ],
          "status": "research/reference",
          "component": "SubTHZReferencePanel",
          "currentSection": "Simulate → Propagation → Sub-THz atmospheric reference"
        }
      ]
    },
    {
      "id": "propagation.p1411_reference",
      "component": "P1411CandidatePanel",
      "currentSection": "Simulate → Propagation → P.1411 candidate reference",
      "domainField": "local panel options; result held by isolated analysis state",
      "requestField": "/api/sub-thz-p1411-reference; frequency_ghz, transmitter, receiver, morphology, rooftop_relation, los_state, candidate_model_id, provenance, optional comparisons",
      "default": "140 GHz; 25 m TX; 1.5 m RX; all candidate rows; urban high-rise; both below rooftop; LoS",
      "prerequisite": "Selected transmitter plus map receiver; explicit scenario labels and row applicability",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "candidate-specific strict P.1411 reference envelopes"
      ],
      "uiControls": [
        {
          "id": "p1411.frequency",
          "label": "Frequency",
          "domainField": "local options.frequencyGHz",
          "requestField": "frequency_ghz",
          "default": "140 GHz",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.tx_height",
          "label": "TX height",
          "domainField": "local options.txHeightM",
          "requestField": "transmitter.height_m",
          "default": "25 m",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.rx_height",
          "label": "RX height",
          "domainField": "local options.rxHeightM",
          "requestField": "receiver.height_m",
          "default": "1.5 m",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.candidate_row",
          "label": "Candidate row",
          "domainField": "local options.candidateModelID",
          "requestField": "candidate_model_id",
          "default": "all",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.morphology",
          "label": "Morphology",
          "domainField": "local options.morphology",
          "requestField": "morphology",
          "default": "urban_high_rise",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.rooftop_relation",
          "label": "Rooftop relation",
          "domainField": "local options.rooftopRelation",
          "requestField": "rooftop_relation",
          "default": "both_below_rooftop",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.path_state",
          "label": "Path state",
          "domainField": "local options.losState",
          "requestField": "los_state",
          "default": "los",
          "prerequisite": "Panel default",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.compare_atmosphere",
          "label": "Request atmospheric comparison",
          "domainField": "local options.includeAtmosphericComparison",
          "requestField": "atmospheric_reference object presence",
          "default": "false",
          "prerequisite": "Optional; comparison is not summed",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.atmosphere_pressure",
          "label": "Atmospheric comparison pressure",
          "domainField": "local options.pressureHpa",
          "requestField": "atmospheric_reference.atmosphere.pressure_hpa",
          "default": "1013.25 hPa",
          "prerequisite": "Atmospheric comparison enabled",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.atmosphere_temperature",
          "label": "Atmospheric comparison temperature",
          "domainField": "local options.temperatureK",
          "requestField": "atmospheric_reference.atmosphere.temperature_k",
          "default": "288.15 K",
          "prerequisite": "Atmospheric comparison enabled",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.atmosphere_water_vapour",
          "label": "Atmospheric comparison water vapour",
          "domainField": "local options.waterVapourDensityGm3",
          "requestField": "atmospheric_reference.atmosphere.water_vapour_density_g_m3",
          "default": "7.5 g/m³",
          "prerequisite": "Atmospheric comparison enabled",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.compare_research",
          "label": "Compare research wall events",
          "domainField": "local options.includeResearchComparison",
          "requestField": "research_wall_event_count presence",
          "default": "false",
          "prerequisite": "Optional",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        },
        {
          "id": "p1411.research_wall_event_count",
          "label": "Wall-event count",
          "domainField": "local options.researchWallEventCount",
          "requestField": "research_wall_event_count",
          "default": "0",
          "prerequisite": "Research comparison enabled",
          "groupId": "propagation.p1411_reference",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "candidate-specific strict P.1411 reference envelopes"
          ],
          "status": "research/reference",
          "component": "P1411CandidatePanel",
          "currentSection": "Simulate → Propagation → P.1411 candidate reference"
        }
      ]
    },
    {
      "id": "interference.bandwidth",
      "component": "ControlPanel",
      "currentSection": "Analyze → Interference",
      "domainField": "settings.interferenceBandwidthMHz",
      "requestField": "bandwidth_mhz",
      "default": "100 MHz for 5G mmWave",
      "prerequisite": "Network planning mode and radio-quality-supported profile",
      "status": "advanced radio-quality configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "interference.bandwidth",
          "label": "interference bandwidth",
          "domainField": "settings.interferenceBandwidthMHz",
          "requestField": "bandwidth_mhz",
          "default": "100 MHz for 5G mmWave",
          "prerequisite": "Network planning mode and radio-quality-supported profile",
          "groupId": "interference.bandwidth",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced radio-quality configuration",
          "component": "ControlPanel",
          "currentSection": "Analyze → Interference"
        }
      ]
    },
    {
      "id": "interference.cell_load",
      "component": "ControlPanel",
      "currentSection": "Analyze → Interference",
      "domainField": "settings.cellLoadPct",
      "requestField": "load_factor",
      "default": "70%",
      "prerequisite": "Network planning mode and radio-quality-supported profile",
      "status": "advanced radio-quality configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "interference.cell_load",
          "label": "interference cell load",
          "domainField": "settings.cellLoadPct",
          "requestField": "load_factor",
          "default": "70%",
          "prerequisite": "Network planning mode and radio-quality-supported profile",
          "groupId": "interference.cell_load",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced radio-quality configuration",
          "component": "ControlPanel",
          "currentSection": "Analyze → Interference"
        }
      ]
    },
    {
      "id": "interference.reuse",
      "component": "ControlPanel",
      "currentSection": "Analyze → Interference",
      "domainField": "settings.reuseFactor",
      "requestField": "reuse_factor",
      "default": "1",
      "prerequisite": "Network planning mode and radio-quality-supported profile",
      "status": "advanced radio-quality configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "interference.reuse",
          "label": "interference reuse",
          "domainField": "settings.reuseFactor",
          "requestField": "reuse_factor",
          "default": "1",
          "prerequisite": "Network planning mode and radio-quality-supported profile",
          "groupId": "interference.reuse",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced radio-quality configuration",
          "component": "ControlPanel",
          "currentSection": "Analyze → Interference"
        }
      ]
    },
    {
      "id": "interference.noise_figure",
      "component": "ControlPanel",
      "currentSection": "Analyze → Interference → Advanced assumptions",
      "domainField": "settings.noiseFigureDb",
      "requestField": "noise_figure_db",
      "default": "7 dB",
      "prerequisite": "Network planning mode and radio-quality-supported profile",
      "status": "advanced radio-quality configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "interference.noise_figure",
          "label": "interference noise figure",
          "domainField": "settings.noiseFigureDb",
          "requestField": "noise_figure_db",
          "default": "7 dB",
          "prerequisite": "Network planning mode and radio-quality-supported profile",
          "groupId": "interference.noise_figure",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced radio-quality configuration",
          "component": "ControlPanel",
          "currentSection": "Analyze → Interference → Advanced assumptions"
        }
      ]
    },
    {
      "id": "interference.grid_spacing",
      "component": "ControlPanel",
      "currentSection": "Analyze → Interference → Advanced assumptions",
      "domainField": "settings.sampleSpacingMeters",
      "requestField": "sample_spacing_m",
      "default": "40 m",
      "prerequisite": "Network planning mode and radio-quality-supported profile",
      "status": "advanced radio-quality configuration",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "interference.grid_spacing",
          "label": "interference grid spacing",
          "domainField": "settings.sampleSpacingMeters",
          "requestField": "sample_spacing_m",
          "default": "40 m",
          "prerequisite": "Network planning mode and radio-quality-supported profile",
          "groupId": "interference.grid_spacing",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced radio-quality configuration",
          "component": "ControlPanel",
          "currentSection": "Analyze → Interference → Advanced assumptions"
        }
      ]
    },
    {
      "id": "interference.run",
      "component": "ControlPanel",
      "currentSection": "Analyze → Interference",
      "domainField": "interference result / run state",
      "requestField": "/api/interference",
      "default": "Analyze Interference",
      "prerequisite": "Network mode; 2–6 selected request-ready cells; supported radio-quality profile",
      "status": "advanced analysis action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "interference.run",
          "label": "interference run",
          "domainField": "interference result / run state",
          "requestField": "/api/interference",
          "default": "Analyze Interference",
          "prerequisite": "Network mode; 2–6 selected request-ready cells; supported radio-quality profile",
          "groupId": "interference.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced analysis action",
          "component": "ControlPanel",
          "currentSection": "Analyze → Interference"
        }
      ]
    },
    {
      "id": "building_entry.run",
      "component": "BuildingEntryPanel",
      "currentSection": "Analyze → Building entry",
      "domainField": "isolated building-entry analysis result",
      "requestField": "/api/building-entry-analysis; towers[], rays, radius_m, frequency_ghz, tx_power_dbm, beam_width, calibration_offset_db",
      "default": "Run building-entry estimate",
      "prerequisite": "Selected cell/network; 2.6 or 28 GHz applicable model",
      "status": "advanced analysis action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g / 2.6 GHz",
        "5g / 28 GHz"
      ],
      "uiControls": [
        {
          "id": "building_entry.run",
          "label": "building entry run",
          "domainField": "isolated building-entry analysis result",
          "requestField": "/api/building-entry-analysis; towers[], rays, radius_m, frequency_ghz, tx_power_dbm, beam_width, calibration_offset_db",
          "default": "Run building-entry estimate",
          "prerequisite": "Selected cell/network; 2.6 or 28 GHz applicable model",
          "groupId": "building_entry.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g / 2.6 GHz",
            "5g / 28 GHz"
          ],
          "status": "advanced analysis action",
          "component": "BuildingEntryPanel",
          "currentSection": "Analyze → Building entry"
        }
      ]
    },
    {
      "id": "diagnostics.load_campaign",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local campaigns state",
      "requestField": "campaigns[] on /api/sub-thz-validation",
      "default": "no campaign loaded",
      "prerequisite": "Versioned valid campaign JSON",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "per-campaign/model adapter applicability"
      ],
      "uiControls": [
        {
          "id": "diagnostics.load_campaign",
          "label": "diagnostics load campaign",
          "domainField": "local campaigns state",
          "requestField": "campaigns[] on /api/sub-thz-validation",
          "default": "no campaign loaded",
          "prerequisite": "Versioned valid campaign JSON",
          "groupId": "diagnostics.load_campaign",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "per-campaign/model adapter applicability"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.synthetic_control",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local campaigns state",
      "requestField": "synthetic control campaign",
      "default": "not loaded",
      "prerequisite": "User action",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "P.525 control fixture"
      ],
      "uiControls": [
        {
          "id": "diagnostics.synthetic_control",
          "label": "diagnostics synthetic control",
          "domainField": "local campaigns state",
          "requestField": "synthetic control campaign",
          "default": "not loaded",
          "prerequisite": "User action",
          "groupId": "diagnostics.synthetic_control",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525 control fixture"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.operation",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local options.operation",
      "requestField": "operation",
      "default": "compare_models",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "compare_models",
        "validate_campaign",
        "calibrate_bias",
        "spatial_holdout"
      ],
      "uiControls": [
        {
          "id": "diagnostics.operation",
          "label": "diagnostics operation",
          "domainField": "local options.operation",
          "requestField": "operation",
          "default": "compare_models",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.operation",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "compare_models",
            "validate_campaign",
            "calibrate_bias",
            "spatial_holdout"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.split_strategy",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local options.method",
      "requestField": "method",
      "default": "all_samples",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "all_samples",
        "spatial_grid",
        "leave_one_site_out",
        "leave_one_campaign_out"
      ],
      "uiControls": [
        {
          "id": "diagnostics.split_strategy",
          "label": "diagnostics split strategy",
          "domainField": "local options.method",
          "requestField": "method",
          "default": "all_samples",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.split_strategy",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "all_samples",
            "spatial_grid",
            "leave_one_site_out",
            "leave_one_campaign_out"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.group_key",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local options.groupBy",
      "requestField": "group_by",
      "default": "site_id",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "site_id",
        "location_pair_id",
        "campaign_id"
      ],
      "uiControls": [
        {
          "id": "diagnostics.group_key",
          "label": "diagnostics group key",
          "domainField": "local options.groupBy",
          "requestField": "group_by",
          "default": "site_id",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.group_key",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "site_id",
            "location_pair_id",
            "campaign_id"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.cell_size",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local options.cellSize",
      "requestField": "cell_size_m",
      "default": "100 m",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "spatial holdout methods"
      ],
      "uiControls": [
        {
          "id": "diagnostics.cell_size",
          "label": "diagnostics cell size",
          "domainField": "local options.cellSize",
          "requestField": "cell_size_m",
          "default": "100 m",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.cell_size",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "spatial holdout methods"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.minimum_separation",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local options.separation",
      "requestField": "min_separation_m",
      "default": "100 m",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "spatial holdout methods"
      ],
      "uiControls": [
        {
          "id": "diagnostics.minimum_separation",
          "label": "diagnostics minimum separation",
          "domainField": "local options.separation",
          "requestField": "min_separation_m",
          "default": "100 m",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.minimum_separation",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "spatial holdout methods"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.reference_adapters",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Reference adapters",
      "domainField": "local options.modelIDs",
      "requestField": "model_ids[]",
      "default": "P.525 FSPL only",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "P.525",
        "Sub-THz atmosphere",
        "P.1411 rows",
        "research_sub_thz",
        "P.526 diagnostic"
      ],
      "uiControls": [
        {
          "id": "diagnostics.adapter.p525",
          "label": "P.525 FSPL adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "selected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        },
        {
          "id": "diagnostics.adapter.atmosphere",
          "label": "Sub-THz atmospheric adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "unselected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        },
        {
          "id": "diagnostics.adapter.p1411_los",
          "label": "P.1411 below-rooftop LoS adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "unselected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        },
        {
          "id": "diagnostics.adapter.p1411_highrise",
          "label": "P.1411 high-rise NLoS adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "unselected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        },
        {
          "id": "diagnostics.adapter.p1411_lowrise",
          "label": "P.1411 low-rise NLoS adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "unselected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        },
        {
          "id": "diagnostics.adapter.research_sub_thz",
          "label": "Research profile comparison adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "unselected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        },
        {
          "id": "diagnostics.adapter.p526",
          "label": "P.526 diagnostic adapter",
          "domainField": "local options.modelIDs",
          "requestField": "model_ids[]",
          "default": "unselected",
          "prerequisite": "Campaign loaded",
          "groupId": "diagnostics.reference_adapters",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.525",
            "Sub-THz atmosphere",
            "P.1411 rows",
            "research_sub_thz",
            "P.526 diagnostic"
          ],
          "status": "research/reference",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Reference adapters"
        }
      ]
    },
    {
      "id": "diagnostics.include_predictions",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "local options.includePredictions",
      "requestField": "include_predictions",
      "default": "true",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "available adapters"
      ],
      "uiControls": [
        {
          "id": "diagnostics.include_predictions",
          "label": "diagnostics include predictions",
          "domainField": "local options.includePredictions",
          "requestField": "include_predictions",
          "default": "true",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.include_predictions",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "available adapters"
          ],
          "status": "research/reference validation",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "diagnostics.run",
      "component": "MeasurementValidationPanel",
      "currentSection": "Analyze → RF Diagnostics → Evidence ledger",
      "domainField": "measurementValidation result state",
      "requestField": "/api/sub-thz-validation",
      "default": "Run RF diagnostics",
      "prerequisite": "At least one valid campaign",
      "status": "research/reference action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "available adapters"
      ],
      "uiControls": [
        {
          "id": "diagnostics.run",
          "label": "diagnostics run",
          "domainField": "measurementValidation result state",
          "requestField": "/api/sub-thz-validation",
          "default": "Run RF diagnostics",
          "prerequisite": "At least one valid campaign",
          "groupId": "diagnostics.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "available adapters"
          ],
          "status": "research/reference action",
          "component": "MeasurementValidationPanel",
          "currentSection": "Analyze → RF Diagnostics → Evidence ledger"
        }
      ]
    },
    {
      "id": "material.frequency_source_slab",
      "component": "MaterialReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Material & facade reference",
      "domainField": "local options.frequencyGHz/materialSource/materialID",
      "requestField": "frequency_ghz/material_source/material_id",
      "default": "140 GHz; P.2040 reference row; glass_100_400",
      "prerequisite": "Finite frequency; selected row covers frequency",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "catalog row-specific frequency envelope"
      ],
      "uiControls": [
        {
          "id": "material.frequency",
          "label": "Frequency",
          "domainField": "local options.frequencyGHz",
          "requestField": "frequency_ghz",
          "default": "140 GHz",
          "prerequisite": "P.2040 material range must cover frequency",
          "groupId": "material.frequency_source_slab",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "catalog row-specific frequency envelope"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        },
        {
          "id": "material.source",
          "label": "Material source",
          "domainField": "local options.materialSource",
          "requestField": "material_source",
          "default": "p2040_reference",
          "prerequisite": "Panel default",
          "groupId": "material.frequency_source_slab",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "catalog row-specific frequency envelope"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        },
        {
          "id": "material.row",
          "label": "P.2040 material row",
          "domainField": "local options.materialID",
          "requestField": "material_id",
          "default": "glass_100_400",
          "prerequisite": "P.2040 source selected",
          "groupId": "material.frequency_source_slab",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "catalog row-specific frequency envelope"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        }
      ]
    },
    {
      "id": "material.thickness_provenance",
      "component": "MaterialReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Material & facade reference",
      "domainField": "local options.thicknessM/thicknessProvenance",
      "requestField": "thickness_m/thickness_provenance",
      "default": "0.01 m; user_declared",
      "prerequisite": "Non-negative thickness",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "P.2040 slab reference"
      ],
      "uiControls": [
        {
          "id": "material.thickness",
          "label": "Slab thickness",
          "domainField": "local options.thicknessM",
          "requestField": "thickness_m",
          "default": "0.01 m",
          "prerequisite": "Non-negative thickness",
          "groupId": "material.thickness_provenance",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 slab reference"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        },
        {
          "id": "material.thickness_provenance",
          "label": "Thickness provenance",
          "domainField": "local options.thicknessProvenance",
          "requestField": "thickness_provenance",
          "default": "user_declared",
          "prerequisite": "Panel default",
          "groupId": "material.thickness_provenance",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 slab reference"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        }
      ]
    },
    {
      "id": "material.angle_polarization",
      "component": "MaterialReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Material & facade reference",
      "domainField": "local options.incidenceAngleDeg/polarization",
      "requestField": "incidence_angle_deg/polarization",
      "default": "0°; TE",
      "prerequisite": "Angle in [0°, 90°)",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "P.2040 slab reference"
      ],
      "uiControls": [
        {
          "id": "material.incidence_angle",
          "label": "Incidence angle",
          "domainField": "local options.incidenceAngleDeg",
          "requestField": "incidence_angle_deg",
          "default": "0°",
          "prerequisite": "Angle [0°,90°)",
          "groupId": "material.angle_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 slab reference"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        },
        {
          "id": "material.polarization",
          "label": "Polarization",
          "domainField": "local options.polarization",
          "requestField": "polarization",
          "default": "TE",
          "prerequisite": "Panel default",
          "groupId": "material.angle_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 slab reference"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        }
      ]
    },
    {
      "id": "material.user_property_contract",
      "component": "MaterialReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract",
      "domainField": "local user material options",
      "requestField": "user_material property source / permittivity / conductivity or loss tangent / valid range",
      "default": "conditional: user-defined name; εr 4; conductivity 0.15 S/m; user_declared; 100–200 GHz",
      "prerequisite": "Material source = user_defined",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "declared user property frequency range"
      ],
      "uiControls": [
        {
          "id": "material.user_name",
          "label": "User material name",
          "domainField": "local options.userName",
          "requestField": "user_material.name",
          "default": "User-declared slab",
          "prerequisite": "User-defined source",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.user_property_source",
          "label": "User property provenance",
          "domainField": "local options.userPropertySource",
          "requestField": "user_material.property_source",
          "default": "user_declared",
          "prerequisite": "User-defined source",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.relative_permittivity",
          "label": "Relative permittivity",
          "domainField": "local options.userRelativePermittivity",
          "requestField": "user_material.relative_permittivity",
          "default": "4",
          "prerequisite": "User-defined source",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.loss_form",
          "label": "Loss form",
          "domainField": "local options.userPropertyForm",
          "requestField": "user_material conductivity_s_per_m or loss_tangent",
          "default": "conductivity",
          "prerequisite": "User-defined source",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.conductivity",
          "label": "Conductivity",
          "domainField": "local options.userConductivity",
          "requestField": "user_material.conductivity_s_per_m",
          "default": "0.15 S/m",
          "prerequisite": "User-defined conductivity form",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.loss_tangent",
          "label": "Loss tangent",
          "domainField": "local options.userLossTangent",
          "requestField": "user_material.loss_tangent",
          "default": "0.03",
          "prerequisite": "User-defined loss-tangent form",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.valid_from",
          "label": "Valid from",
          "domainField": "local options.userMinFrequency",
          "requestField": "user_material.frequency_range_ghz[0]",
          "default": "100 GHz",
          "prerequisite": "User-defined source",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        },
        {
          "id": "material.valid_to",
          "label": "Valid to",
          "domainField": "local options.userMaxFrequency",
          "requestField": "user_material.frequency_range_ghz[1]",
          "default": "200 GHz",
          "prerequisite": "User-defined source",
          "groupId": "material.user_property_contract",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "declared user property frequency range"
          ],
          "status": "research/reference",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference → User property contract"
        }
      ]
    },
    {
      "id": "material.run",
      "component": "MaterialReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Material & facade reference",
      "domainField": "materialReference result state",
      "requestField": "/api/sub-thz-material-reference",
      "default": "Run material reference",
      "prerequisite": "Finite required numeric inputs and valid material contract",
      "status": "research/reference action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "P.2040 material catalog and user declaration"
      ],
      "uiControls": [
        {
          "id": "material.run",
          "label": "material run",
          "domainField": "materialReference result state",
          "requestField": "/api/sub-thz-material-reference",
          "default": "Run material reference",
          "prerequisite": "Finite required numeric inputs and valid material contract",
          "groupId": "material.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 material catalog and user declaration"
          ],
          "status": "research/reference action",
          "component": "MaterialReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Material & facade reference"
        }
      ]
    },
    {
      "id": "reflection.geometry",
      "component": "SpecularReflectionReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade",
      "domainField": "local options frequency/tx/rx/facade geometry",
      "requestField": "frequency_ghz; tx/rx positions; facade start/end/plane/outward_normal/provenance",
      "default": "140 GHz; local ENU; TX (50,-50,10); RX (50,50,10); facade x=0, y=-10..10, z=0..20",
      "prerequisite": "Explicit finite planar facade and endpoint geometry",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "single-bounce reference applicability"
      ],
      "uiControls": [
        {
          "id": "reflection.frequency",
          "label": "Frequency",
          "domainField": "local options.frequencyGHz",
          "requestField": "frequency_ghz",
          "default": "140 GHz",
          "prerequisite": "Panel default",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.tx_x",
          "label": "TX X",
          "domainField": "local options.tx.x",
          "requestField": "tx.position.x",
          "default": "50 m",
          "prerequisite": "Local ENU geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.tx_y",
          "label": "TX Y",
          "domainField": "local options.tx.y",
          "requestField": "tx.position.y",
          "default": "-50 m",
          "prerequisite": "Local ENU geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.tx_z",
          "label": "TX Z",
          "domainField": "local options.tx.z",
          "requestField": "tx.position.z",
          "default": "10 m",
          "prerequisite": "Local ENU geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.tx_gain",
          "label": "TX antenna gain",
          "domainField": "local options.tx.gainDBi",
          "requestField": "tx.antenna.absolute_gain_dbi",
          "default": "0 dBi",
          "prerequisite": "Panel default",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.tx_antenna_mode",
          "label": "TX antenna mode",
          "domainField": "local options.tx.antennaMode",
          "requestField": "tx.antenna.mode",
          "default": "isotropic",
          "prerequisite": "Panel default",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.rx_x",
          "label": "RX X",
          "domainField": "local options.rx.x",
          "requestField": "rx.position.x",
          "default": "50 m",
          "prerequisite": "Local ENU geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.rx_y",
          "label": "RX Y",
          "domainField": "local options.rx.y",
          "requestField": "rx.position.y",
          "default": "50 m",
          "prerequisite": "Local ENU geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.rx_z",
          "label": "RX Z",
          "domainField": "local options.rx.z",
          "requestField": "rx.position.z",
          "default": "10 m",
          "prerequisite": "Local ENU geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.rx_gain",
          "label": "RX antenna gain",
          "domainField": "local options.rx.gainDBi",
          "requestField": "rx.antenna.absolute_gain_dbi",
          "default": "0 dBi",
          "prerequisite": "Panel default",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.rx_antenna_mode",
          "label": "RX antenna mode",
          "domainField": "local options.rx.antennaMode",
          "requestField": "rx.antenna.mode",
          "default": "isotropic",
          "prerequisite": "Panel default",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_start_x",
          "label": "Facade start X",
          "domainField": "local options.facade.startX",
          "requestField": "facade.start.x",
          "default": "0 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_start_y",
          "label": "Facade start Y",
          "domainField": "local options.facade.startY",
          "requestField": "facade.start.y",
          "default": "-10 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_end_x",
          "label": "Facade end X",
          "domainField": "local options.facade.endX",
          "requestField": "facade.end.x",
          "default": "0 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_end_y",
          "label": "Facade end Y",
          "domainField": "local options.facade.endY",
          "requestField": "facade.end.y",
          "default": "10 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_plane_x",
          "label": "Facade plane X",
          "domainField": "local options.facade.planeX",
          "requestField": "facade.plane_point.x",
          "default": "0 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_plane_y",
          "label": "Facade plane Y",
          "domainField": "local options.facade.planeY",
          "requestField": "facade.plane_point.y",
          "default": "0 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_normal_x",
          "label": "Facade normal X",
          "domainField": "local options.facade.normalX",
          "requestField": "facade.outward_normal.x",
          "default": "1",
          "prerequisite": "Declared outward normal",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_normal_y",
          "label": "Facade normal Y",
          "domainField": "local options.facade.normalY",
          "requestField": "facade.outward_normal.y",
          "default": "0",
          "prerequisite": "Declared outward normal",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_normal_z",
          "label": "Facade normal Z",
          "domainField": "local options.facade.normalZ",
          "requestField": "facade.outward_normal.z",
          "default": "0",
          "prerequisite": "Declared outward normal",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_base_z",
          "label": "Facade base Z",
          "domainField": "local options.facade.baseZ",
          "requestField": "facade.base_z",
          "default": "0 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        },
        {
          "id": "reflection.facade_top_z",
          "label": "Facade top Z",
          "domainField": "local options.facade.topZ",
          "requestField": "facade.top_z",
          "default": "20 m",
          "prerequisite": "Finite facade geometry",
          "groupId": "reflection.geometry",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference applicability"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Geometry and finite facade"
        }
      ]
    },
    {
      "id": "reflection.material_polarization",
      "component": "SpecularReflectionReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization",
      "domainField": "local options.material and polarization",
      "requestField": "material mode/source/properties/provenance; polarization",
      "default": "interface; user-defined εr 4 / σ 0; TE",
      "prerequisite": "Explicit property declaration or covered P.2040 row",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "P.2040 interface or finite-slab contract"
      ],
      "uiControls": [
        {
          "id": "reflection.mode",
          "label": "Reflection material mode",
          "domainField": "local options.material.mode",
          "requestField": "material.mode",
          "default": "interface",
          "prerequisite": "Panel default",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.material_source",
          "label": "Material source",
          "domainField": "local options.material.materialSource",
          "requestField": "material.material_source",
          "default": "user_defined",
          "prerequisite": "Panel default",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.polarization",
          "label": "Polarization",
          "domainField": "local options.polarization",
          "requestField": "polarization",
          "default": "TE",
          "prerequisite": "Panel default",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.material_row",
          "label": "P.2040 material row",
          "domainField": "local options.material.materialID",
          "requestField": "material.material_id",
          "default": "concrete_110_330",
          "prerequisite": "P.2040 source selected",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.relative_permittivity",
          "label": "Relative permittivity",
          "domainField": "local options.material.relativePermittivity",
          "requestField": "material.user_material.relative_permittivity",
          "default": "4",
          "prerequisite": "User-defined source",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.conductivity",
          "label": "Conductivity",
          "domainField": "local options.material.conductivitySPerM",
          "requestField": "material.user_material.conductivity_s_per_m",
          "default": "0 S/m",
          "prerequisite": "User-defined source",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.property_provenance",
          "label": "Property provenance",
          "domainField": "local options.material.propertySource",
          "requestField": "material.user_material.property_source",
          "default": "user_declared",
          "prerequisite": "User-defined source",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        },
        {
          "id": "reflection.slab_thickness",
          "label": "Slab thickness",
          "domainField": "local options.material.thicknessM",
          "requestField": "material.thickness_m",
          "default": "0.1 m",
          "prerequisite": "Finite slab mode",
          "groupId": "reflection.material_polarization",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "P.2040 interface or finite-slab contract"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Interface and polarization"
        }
      ]
    },
    {
      "id": "reflection.evidence_link_budget",
      "component": "SpecularReflectionReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions",
      "domainField": "local options terrain/roughness/linkBudget",
      "requestField": "terrain; optional rms_roughness_m; link_budget",
      "default": "flat_ground_relative_datum; roughness blank; 30 dBm conducted; other losses 0",
      "prerequisite": "Declared evidence context",
      "status": "research/reference",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "single-bounce reference"
      ],
      "uiControls": [
        {
          "id": "reflection.terrain_mode",
          "label": "Terrain / datum",
          "domainField": "local options.terrainMode",
          "requestField": "terrain.mode",
          "default": "flat_ground_relative_datum",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.rms_roughness",
          "label": "RMS roughness",
          "domainField": "local options.rmsRoughnessM",
          "requestField": "terrain.rms_roughness_m",
          "default": "blank / optional",
          "prerequisite": "Optional evidence input",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.conducted_tx_power",
          "label": "Conducted TX power",
          "domainField": "local options.linkBudget.ptConductedDbm",
          "requestField": "link_budget.conducted_tx_power_dbm",
          "default": "30 dBm",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.link_tx_gain",
          "label": "TX gain",
          "domainField": "local options.linkBudget.tx gain",
          "requestField": "link_budget.tx_gain_dbi",
          "default": "0 dBi",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.link_rx_gain",
          "label": "RX gain",
          "domainField": "local options.linkBudget.rx gain",
          "requestField": "link_budget.rx_gain_dbi",
          "default": "0 dBi",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.system_loss",
          "label": "System loss",
          "domainField": "local options.linkBudget.systemLossDB",
          "requestField": "link_budget.system_loss_db",
          "default": "0 dB",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.polarization_loss",
          "label": "Polarization loss",
          "domainField": "local options.linkBudget.polarizationLossDB",
          "requestField": "link_budget.polarization_loss_db",
          "default": "0 dB",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        },
        {
          "id": "reflection.calibration",
          "label": "Calibration offset",
          "domainField": "local options.linkBudget.calibrationDB",
          "requestField": "link_budget.calibration_offset_db",
          "default": "0 dB",
          "prerequisite": "Panel default",
          "groupId": "reflection.evidence_link_budget",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference → Evidence and link-budget assumptions"
        }
      ]
    },
    {
      "id": "reflection.run",
      "component": "SpecularReflectionReferencePanel",
      "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference",
      "domainField": "specularReflection result state",
      "requestField": "/api/sub-thz-reflection-reference",
      "default": "Evaluate reflected path",
      "prerequisite": "Explicit valid geometry/material/terrain",
      "status": "research/reference action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "single-bounce reference"
      ],
      "uiControls": [
        {
          "id": "reflection.run",
          "label": "reflection run",
          "domainField": "specularReflection result state",
          "requestField": "/api/sub-thz-reflection-reference",
          "default": "Evaluate reflected path",
          "prerequisite": "Explicit valid geometry/material/terrain",
          "groupId": "reflection.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "single-bounce reference"
          ],
          "status": "research/reference action",
          "component": "SpecularReflectionReferencePanel",
          "currentSection": "Analyze → RF Diagnostics → Specular Reflection Reference"
        }
      ]
    },
    {
      "id": "data.dataset_pack_activation",
      "component": "DataPanel",
      "currentSection": "Review → Data → Installed Dataset Packs",
      "domainField": "active dataset / dataset revision",
      "requestField": "dataset reference and loaded RF inventory data",
      "default": "Ankara Open Planning Dataset v2026.07 active",
      "prerequisite": "Pack discovered, hash and geometry validated",
      "status": "planning data",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "installed compatible dataset packs"
      ],
      "uiControls": [
        {
          "id": "data.dataset_pack_activation",
          "label": "data dataset pack activation",
          "domainField": "active dataset / dataset revision",
          "requestField": "dataset reference and loaded RF inventory data",
          "default": "Ankara Open Planning Dataset v2026.07 active",
          "prerequisite": "Pack discovered, hash and geometry validated",
          "groupId": "data.dataset_pack_activation",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "installed compatible dataset packs"
          ],
          "status": "planning data",
          "component": "DataPanel",
          "currentSection": "Review → Data → Installed Dataset Packs"
        }
      ]
    },
    {
      "id": "data.measurement_csv",
      "component": "DataPanel",
      "currentSection": "Review → Data → Field measurement validation",
      "domainField": "local measurementSamples",
      "requestField": "samples[] on /api/measurements/evaluate",
      "default": "0 samples; no CSV selected",
      "prerequisite": "Valid CSV with RSRP samples",
      "status": "research/reference validation",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "4g/5g supported measurements"
      ],
      "uiControls": [
        {
          "id": "data.measurement_csv",
          "label": "data measurement csv",
          "domainField": "local measurementSamples",
          "requestField": "samples[] on /api/measurements/evaluate",
          "default": "0 samples; no CSV selected",
          "prerequisite": "Valid CSV with RSRP samples",
          "groupId": "data.measurement_csv",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "4g/5g supported measurements"
          ],
          "status": "research/reference validation",
          "component": "DataPanel",
          "currentSection": "Review → Data → Field measurement validation"
        }
      ]
    },
    {
      "id": "data.evaluate_measurements",
      "component": "DataPanel",
      "currentSection": "Review → Data → Field measurement validation",
      "domainField": "measurementAnalysis result state",
      "requestField": "/api/measurements/evaluate",
      "default": "Evaluate residuals",
      "prerequisite": "At least one measurement sample",
      "status": "research/reference validation action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "measurement endpoint support matrix"
      ],
      "uiControls": [
        {
          "id": "data.evaluate_measurements",
          "label": "data evaluate measurements",
          "domainField": "measurementAnalysis result state",
          "requestField": "/api/measurements/evaluate",
          "default": "Evaluate residuals",
          "prerequisite": "At least one measurement sample",
          "groupId": "data.evaluate_measurements",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "measurement endpoint support matrix"
          ],
          "status": "research/reference validation action",
          "component": "DataPanel",
          "currentSection": "Review → Data → Field measurement validation"
        }
      ]
    },
    {
      "id": "data.apply_calibration",
      "component": "DataPanel",
      "currentSection": "Review → Data → Calibration review",
      "domainField": "settings.calibrationOffsetDb / active calibration profile",
      "requestField": "calibration_offset_db in subsequent canonical requests",
      "default": "available only after eligible spatially validated calibration",
      "prerequisite": "Eligible calibration result and explicit user action",
      "status": "research/reference analysis with explicit canonical apply action",
      "rfAffecting": true,
      "persisted": true,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "compatible technology/frequency/model/dataset calibration profile"
      ],
      "uiControls": [
        {
          "id": "data.apply_calibration",
          "label": "data apply calibration",
          "domainField": "settings.calibrationOffsetDb / active calibration profile",
          "requestField": "calibration_offset_db in subsequent canonical requests",
          "default": "available only after eligible spatially validated calibration",
          "prerequisite": "Eligible calibration result and explicit user action",
          "groupId": "data.apply_calibration",
          "rfAffecting": true,
          "persisted": true,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "compatible technology/frequency/model/dataset calibration profile"
          ],
          "status": "research/reference analysis with explicit canonical apply action",
          "component": "DataPanel",
          "currentSection": "Review → Data → Calibration review"
        }
      ]
    },
    {
      "id": "core_lab.enabled",
      "component": "CoreLabTool",
      "currentSection": "Analyze → 5G Core",
      "domainField": "coreLabEnabled",
      "requestField": "Core Lab API scenario",
      "default": "off unless enabled",
      "prerequisite": "Core Lab adapter available",
      "status": "research/lab",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "Core Lab scenarios"
      ],
      "uiControls": [
        {
          "id": "core_lab.enabled",
          "label": "core lab enabled",
          "domainField": "coreLabEnabled",
          "requestField": "Core Lab API scenario",
          "default": "off unless enabled",
          "prerequisite": "Core Lab adapter available",
          "groupId": "core_lab.enabled",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "Core Lab scenarios"
          ],
          "status": "research/lab",
          "component": "CoreLabTool",
          "currentSection": "Analyze → 5G Core"
        }
      ]
    },
    {
      "id": "core_lab.scenario",
      "component": "CoreLabTool",
      "currentSection": "Analyze → 5G Core",
      "domainField": "local Core Lab scenario selection",
      "requestField": "Core Lab scenario request",
      "default": "scenario selected from catalog",
      "prerequisite": "Core Lab enabled and applicable",
      "status": "research/lab",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "Core Lab scenarios"
      ],
      "uiControls": [
        {
          "id": "core_lab.scenario",
          "label": "core lab scenario",
          "domainField": "local Core Lab scenario selection",
          "requestField": "Core Lab scenario request",
          "default": "scenario selected from catalog",
          "prerequisite": "Core Lab enabled and applicable",
          "groupId": "core_lab.scenario",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "Core Lab scenarios"
          ],
          "status": "research/lab",
          "component": "CoreLabTool",
          "currentSection": "Analyze → 5G Core"
        }
      ]
    },
    {
      "id": "core_lab.run",
      "component": "CoreLabTool",
      "currentSection": "Analyze → 5G Core",
      "domainField": "Core Lab result state",
      "requestField": "Core Lab API scenario",
      "default": "Run scenario",
      "prerequisite": "Adapter available, enabled, and scenario applicable",
      "status": "research/lab action",
      "rfAffecting": false,
      "persisted": false,
      "ordinaryPlanning": false,
      "supportedProfiles": [
        "Core Lab scenarios"
      ],
      "uiControls": [
        {
          "id": "core_lab.run",
          "label": "core lab run",
          "domainField": "Core Lab result state",
          "requestField": "Core Lab API scenario",
          "default": "Run scenario",
          "prerequisite": "Adapter available, enabled, and scenario applicable",
          "groupId": "core_lab.run",
          "rfAffecting": false,
          "persisted": false,
          "ordinaryPlanning": false,
          "supportedProfiles": [
            "Core Lab scenarios"
          ],
          "status": "research/lab action",
          "component": "CoreLabTool",
          "currentSection": "Analyze → 5G Core"
        }
      ]
    }
  ],
  "controlCounting": {
    "unit": "uiControls member",
    "grouping": "Each visible input, choice, toggle, select, map action, and analysis action is represented once in a parent control row or uiControls member. Conditional members state their prerequisite.",
    "groupRowsAreNotAdditionalControls": true
  },
  "controlsCount": 190
}
