{
  "file_id": "08_vertical_energy_utilities",
  "version": "2026.03.16",
  "schema_version": "2.2",
  "status": "Production Authority",
  "last_authoritative_sync": "2026-03-16",
  "description": "Comprehensive enumeration library for the Energy & Utilities vertical. Covers every subdomain where agentic AI is actively deployed as of March 2026: IEC CIM 61968/61970 grid asset and outage management, NERC CIP v7 critical infrastructure protection compliance, OpenADR 2.0b demand response event orchestration, energy market operations and wholesale settlement (FERC, ENTSO-E), renewable energy and distributed energy resource (DER) management (FERC Order 2222), battery storage and virtual power plant dispatch, predictive maintenance and grid condition monitoring, water and wastewater operations, oil and gas pipeline integrity management, and environmental and emissions compliance (EU ETS, EPA Clean Air Act). Designed for use as OTel span attributes in an agentic AI SDK and as policy vocabulary in an OPA Rego GRC portal.",
  "vertical_metadata": {
    "vertical_key": "energy_utilities",
    "industry": "Energy & Utilities",
    "primary_standards": [
      "IEC 61968 — Application Integration at Electric Utilities — System Interfaces for Distribution Management",
      "IEC 61970 — Energy Management System Application Program Interface (EMS-API) — Common Information Model (CIM)",
      "IEC 61850 — Communication Networks and Systems for Power Utility Automation",
      "IEC 61400-25 — Wind Turbines — Communications for Monitoring and Control",
      "IEC 62351 — Power Systems Management and Associated Information Exchange — Data and Communications Security",
      "NERC CIP v7 — Critical Infrastructure Protection Standards (CIP-002 through CIP-014)",
      "NERC FAC-001/FAC-002 — Facility Connection and Planning Standards",
      "NERC EOP-004 — Event Reporting",
      "OpenADR 2.0b — Open Automated Demand Response (OpenADR Alliance)",
      "IEEE 1547-2018 — Standard for Interconnection and Interoperability of DERs with Electric Power Systems",
      "FERC Order 2222 — Participation of Distributed Energy Resource Aggregations in Organized Energy Markets (2020)",
      "FERC Order 881 — Managing Transmission Line Ratings (2021)",
      "FERC Order 3052 — Cybersecurity Incentives (2024)",
      "ENTSO-E Network Codes — EU transmission network operational standards",
      "EU Electricity Directive 2019/944 — Internal market for electricity",
      "EU Renewable Energy Directive III (RED III) 2023/2413 — 42.5% renewable target by 2030",
      "EU ETS (Emissions Trading System) — EU Allowance Registry under EU ETS Directive 2003/87/EC (as amended)",
      "EPA 40 CFR Part 75 — Continuous Emissions Monitoring Systems (CEMS)",
      "EPA Clean Power Plan / Good Neighbor Rule (2024 revisions)",
      "API RP 1173 — Pipeline Safety Management Systems",
      "PHMSA 49 CFR Part 192/195 — Pipeline Safety Regulations",
      "AWWA Cybersecurity Guidance — Water sector OT security",
      "EPA EPCRA Section 313 — Toxic Release Inventory reporting"
    ],
    "primary_source_urls": [
      "https://cimug.ucaiug.org/",
      "https://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx",
      "https://www.openadr.org/",
      "https://www.ferc.gov/",
      "https://www.entsoe.eu/network_codes/",
      "https://www.epa.gov/airmarkets",
      "https://www.phmsa.dot.gov/pipeline"
    ],
    "otel_namespace": "energy",
    "opa_namespace": "data.energy",
    "agentic_ai_deployment_context": "As of March 2026, agentic AI in energy and utilities is deployed across: autonomous grid state estimation and topology optimisation (IEC CIM 61970 integration via EMS APIs), AI-driven demand response orchestration replacing manual DR programme management (OpenADR 2.0b), DER aggregation and virtual power plant (VPP) dispatch agents (FERC Order 2222 compliance), predictive maintenance for generation and transmission assets (reducing forced outage rates), AI-powered energy trading and settlement optimisation (FERC/ENTSO-E market rules), NERC CIP compliance monitoring agents automating evidence collection and gap detection, renewable energy forecasting and curtailment optimisation, pipeline integrity management AI (inline inspection data analysis, anomaly detection), water and wastewater process optimisation agents, and emissions monitoring and ETS compliance automation. The EU AI Act does not explicitly list energy grid management as Annex III high-risk AI, but the EU NIS2 Directive (2022/2555) classifies energy as an essential sector — grid management AI systems are subject to NIS2 security and incident reporting obligations. NERC CIP v7 directly constrains AI system deployment on Bulk Electric System (BES) Cyber Systems — AI agents operating on or near BES assets must meet CIP-005 electronic security perimeter and CIP-007 system security requirements.",
    "key_regulatory_risk_note": "NERC CIP v7 creates direct regulatory exposure for AI systems connected to or interacting with BES Cyber Systems (BCS). A BCS is any programmable device that, if compromised, could adversely impact the reliable operation of the Bulk Electric System. AI agents performing autonomous topology changes, protection relay configuration, or EMS setpoint modifications on high or medium impact BCS assets require documented change management (CIP-010) and vendor supply chain risk management (CIP-013). FERC Order 3052 (2024) creates cybersecurity investment incentives tied to NERC CIP compliance — AI security monitoring systems are eligible for incentive rate treatment. EU ETS Phase 4 (2021-2030) requires continuous emissions monitoring with verified data — AI-driven CEMS (Continuous Emissions Monitoring Systems) must maintain EPA 40 CFR Part 75 / EU MRR data quality standards or face allowance invalidation."
  },
  "subdomains": [
    {
      "subdomain": "Grid Asset & Outage Management (IEC CIM)",
      "description": "Covers IEC 61968/61970 Common Information Model (CIM) enumerations for grid asset operational status, switching equipment state, and outage lifecycle management. Agentic AI EMS/DMS systems consuming or producing CIM-compliant data must use these exact values for interoperability with utility SCADA, EMS, and OMS platforms.",
      "relevant_standards": [
        "IEC 61970-301 — CIM Base (Equipment Package)",
        "IEC 61968-13 — CIM RDF for Distribution Network Model Exchange",
        "IEC 61850-7-4 — Logical nodes for basic application functions in substation automation",
        "EPRI Common Format for Transient Data Exchange (COMTRADE) — IEEE Std 1999"
      ],
      "categories": [
        {
          "enum_name": "GridAssetOperationalStatus",
          "label": "Grid Asset Operational Status",
          "otel_attribute": "energy.asset.operational_status",
          "opa_policy_path": "data.energy.asset.operational_status",
          "rego_input_key": "energy_asset_operational_status",
          "stability": "stable",
          "description": "IEC CIM 61970 operational status of a grid asset (generator, transformer, transmission line, substation bus). These values map directly to IEC CIM OperationalLimitSet and Equipment.inService semantics. AI grid management agents must use these values when reading or setting asset status via EMS APIs.",
          "permitted_values": [
            "in_service",
            "out_of_service",
            "de_energized",
            "planned_outage",
            "forced_outage",
            "under_maintenance",
            "commissioning",
            "decommissioned"
          ],
          "value_labels": {
            "in_service": "In Service",
            "out_of_service": "Out of Service",
            "de_energized": "De Energized",
            "planned_outage": "Planned Outage",
            "forced_outage": "Forced Outage",
            "under_maintenance": "Under Maintenance",
            "commissioning": "Commissioning",
            "decommissioned": "Decommissioned"
          },
          "code_definitions": {
            "in_service": "Asset is energised and operating normally within its rated limits; available for dispatch or load flow",
            "out_of_service": "Asset has been taken out of service by operator action; not energised; available for return",
            "de_energized": "Asset is de-energised for safety (e.g. grounded for crew work); requires safety clearance before re-energisation",
            "planned_outage": "Asset is on a scheduled outage for maintenance or capital works; return date known",
            "forced_outage": "Asset has tripped or failed unexpectedly; immediate restoration effort in progress",
            "under_maintenance": "Asset is physically being worked on by maintenance crews; outage confirmed in progress",
            "commissioning": "Asset is newly installed or significantly modified; undergoing commissioning testing before in-service declaration",
            "decommissioned": "Asset has been permanently retired from service; no return to service expected"
          },
          "regulatory_mappings": {
            "nerc_eop_004": "NERC EOP-004 — Disturbance reporting: 'forced_outage' on BES elements meeting reporting thresholds must be reported to NERC and regional entity",
            "ferc_form_1": "FERC Form 1 — Annual Report requires outage data for transmission assets; AI OMS must maintain audit-quality status history"
          },
          "use_case": "AI energy management agent monitors all BES asset statuses via CIM. 'Forced_outage' on a high-impact asset triggers automatic NERC EOP-004 assessment, initiates restoration workflow, and escalates to grid operations HITL. AI agent may not autonomously re-energise a 'de_energized' asset — crew clearance confirmation required.",
          "source": "IEC 61970-301 CIM Equipment Package — OperationalLimitSet; Equipment.inService semantics",
          "source_url": "https://cimug.ucaiug.org/CIM-Papers-and-Reports.aspx"
        },
        {
          "enum_name": "SwitchingEquipmentState",
          "label": "Switching Equipment State",
          "otel_attribute": "energy.switching.state",
          "opa_policy_path": "data.energy.switching.state",
          "rego_input_key": "energy_switching_state",
          "stability": "stable",
          "description": "IEC CIM 61970 / IEC 61850 state of a switching device (circuit breaker, disconnector, load break switch). AI grid switching agents must log every state transition. Autonomous switching on BES assets without HITL authorisation is a NERC CIP-010 change management violation.",
          "permitted_values": [
            "closed",
            "open",
            "grounded",
            "locked_open",
            "locked_closed",
            "transiting",
            "unknown",
            "fault_interrupt"
          ],
          "value_labels": {
            "closed": "Closed",
            "open": "Open",
            "grounded": "Grounded",
            "locked_open": "Locked Open",
            "locked_closed": "Locked Closed",
            "transiting": "Transiting",
            "unknown": "Unknown",
            "fault_interrupt": "Fault Interrupt"
          },
          "code_definitions": {
            "closed": "Switch contacts are closed; current path is complete; circuit is energised",
            "open": "Switch contacts are open; current path is broken; downstream circuit is de-energised",
            "grounded": "Switch is open and downstream circuit is grounded for worker safety; crew clearance in effect",
            "locked_open": "Switch is open and mechanically or electronically locked; cannot be closed without explicit lock removal",
            "locked_closed": "Switch is closed and locked; cannot be opened without explicit lock removal; typically used for commissioning or protection scheme interlocks",
            "transiting": "Switch is in motion between open and closed states; momentary state during remote or automated switching operation",
            "fault_interrupt": "Circuit breaker has interrupted a fault current; protection relay trip recorded; requires inspection before reclosure"
          },
          "regulatory_mappings": {
            "nerc_cip_010": "NERC CIP-010 — Configuration change management: autonomous AI switching on BES Cyber Systems requires approved change documentation",
            "nerc_fac_001": "NERC FAC-001 — Facility connection requirements: switching operations must maintain system reliability"
          },
          "use_case": "AI distribution management agent executes fault isolation switching sequences. Each switching step is logged with the pre- and post-state. OPA policy blocks AI from closing a 'grounded' switch — crew clearance confirmation from safety system is required first.",
          "source": "IEC CIM 61970 Switch.open/Switch.normalOpen; IEC 61850-7-4 XCBR/XSWI logical node position attributes",
          "source_url": "https://cimug.ucaiug.org/"
        },
        {
          "enum_name": "OutageLifecycleState",
          "label": "Outage Lifecycle State",
          "otel_attribute": "energy.outage.lifecycle_state",
          "opa_policy_path": "data.energy.outage.lifecycle_state",
          "rego_input_key": "energy_outage_lifecycle_state",
          "stability": "stable",
          "description": "Outage Management System (OMS) lifecycle state for a grid outage event. AI outage management agents track outages from initial report through restoration confirmation. Maps to IEC CIM 61968 Outage and PlannedOutage class state semantics.",
          "permitted_values": [
            "reported",
            "confirmed",
            "crew_en_route",
            "crew_on_site",
            "isolating",
            "restoring",
            "partially_restored",
            "fully_restored",
            "under_investigation",
            "cause_identified",
            "closed"
          ],
          "value_labels": {
            "reported": "Reported",
            "confirmed": "Confirmed",
            "crew_en_route": "Crew En Route",
            "crew_on_site": "Crew on Site",
            "isolating": "Isolating",
            "restoring": "Restoring",
            "partially_restored": "Partially Restored",
            "fully_restored": "Fully Restored",
            "under_investigation": "Under Investigation",
            "cause_identified": "Cause Identified",
            "closed": "Closed"
          },
          "use_case": "AI outage management agent receives outage reports from AMI (Advanced Metering Infrastructure), customer calls, and SCADA alarms. Agent correlates reports, confirms outage boundary, and dispatches crew. OPA policy enforces that 'fully_restored' state requires meter-verified restoration confirmation — not just switch state change.",
          "source": "IEC 61968-3 — Interfaces for Network Operations (Outage Management); utility OMS platform state models",
          "source_url": "https://cimug.ucaiug.org/"
        },
        {
          "enum_name": "ProtectionRelayOperationStatus",
          "label": "Protection Relay Operation Status",
          "otel_attribute": "energy.protection.relay_operation_status",
          "opa_policy_path": "data.energy.protection.relay_operation_status",
          "rego_input_key": "energy_protection_relay_operation_status",
          "stability": "stable",
          "description": "Status of a protection relay operation as logged by AI grid monitoring agents. Protection relay events are among the highest-priority signals for grid operators — AI agents must never suppress or delay relay operation notifications.",
          "permitted_values": [
            "normal_no_operation",
            "pickup_condition",
            "trip_initiated",
            "trip_confirmed",
            "reclose_initiated",
            "reclose_successful",
            "reclose_failed_lockout",
            "protection_inhibited_ai_action",
            "relay_malfunction_suspected"
          ],
          "value_labels": {
            "normal_no_operation": "Normal No Operation",
            "pickup_condition": "Pickup Condition",
            "trip_initiated": "Trip Initiated",
            "trip_confirmed": "Trip Confirmed",
            "reclose_initiated": "Reclose Initiated",
            "reclose_successful": "Reclose Successful",
            "reclose_failed_lockout": "Reclose Failed Lockout",
            "protection_inhibited_ai_action": "Protection Inhibited AI Action",
            "relay_malfunction_suspected": "Relay Malfunction Suspected"
          },
          "regulatory_mappings": {
            "nerc_prc_023": "NERC PRC-023 — Transmission relay loadability: relay settings affected by AI optimisation must comply with NERC PRC-023 loadability criteria",
            "nerc_eop_004": "NERC EOP-004 — 'trip_confirmed' events meeting disturbance criteria require event reporting within 24 hours"
          },
          "use_case": "AI grid monitoring agent detects relay operation from SCADA and classifies status. 'Reclose_failed_lockout' triggers immediate crew dispatch. 'Protection_inhibited_ai_action' is a critical flag indicating an AI agent has interfered with protection — requires immediate HITL escalation and is a NERC compliance event.",
          "source": "IEC 61850-7-4 PTRC/RBRF logical nodes; NERC PRC standards; utility EMS relay operation data models",
          "source_url": "https://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx"
        }
      ]
    },
    {
      "subdomain": "Demand Response & OpenADR",
      "description": "Covers OpenADR 2.0b demand response event and resource enumerations. AI demand response orchestration agents interacting with OpenADR Virtual Top Nodes (VTN) and Virtual End Nodes (VEN) must use these exact values for protocol compliance.",
      "relevant_standards": [
        "OpenADR 2.0b — Open Automated Demand Response (OpenADR Alliance / IEC 62746-10-3)",
        "FERC Order 745 — Demand Response Compensation in Organized Energy Markets",
        "IEEE 2030.5 — Smart Energy Profile (SEP 2.0) — Utility-to-customer energy management",
        "NAESB WEQ-012 — Energy Services Provider Interface (ESPI) — Green Button data standard"
      ],
      "categories": [
        {
          "enum_name": "DemandResponseEventStatus",
          "label": "Demand Response Event Status",
          "otel_attribute": "energy.demand_response.event_status",
          "opa_policy_path": "data.energy.demand_response.event_status",
          "rego_input_key": "energy_demand_response_event_status",
          "stability": "stable",
          "description": "OpenADR 2.0b demand response event status. These values map to OpenADR 2.0b oadrRequestEvent and oadrCreatedEvent response states. AI DR orchestration agents (VTN role) must use these values to track event lifecycle.",
          "permitted_values": [
            "pending",
            "active",
            "cancelled",
            "completed",
            "opt_out_received",
            "non_compliance_detected",
            "far",
            "near",
            "ramp_up",
            "recovery"
          ],
          "value_labels": {
            "pending": "Pending",
            "active": "Active",
            "cancelled": "Cancelled",
            "completed": "Completed",
            "opt_out_received": "Opt Out Received",
            "non_compliance_detected": "Non Compliance Detected",
            "far": "Far",
            "near": "Near",
            "ramp_up": "Ramp Up",
            "recovery": "Recovery"
          },
          "code_definitions": {
            "pending": "DR event has been issued by the VTN; notification period in progress; VENs have received the event but load curtailment has not yet started",
            "active": "DR event is in the active curtailment window; participating VENs should be reducing load",
            "cancelled": "DR event was cancelled before or during the active window; VENs should return to normal operation",
            "completed": "DR event active window has ended; settlement measurement and verification (M&V) period beginning",
            "opt_out_received": "A VEN has submitted an opt-out response; the resource is excluded from this event's performance calculation",
            "non_compliance_detected": "AI M&V agent has detected that a VEN did not curtail load as required; penalty assessment workflow initiated",
            "far": "OpenADR 2.0b signal type: event is in the far advance notice window (> 30 minutes to curtailment)",
            "near": "OpenADR 2.0b signal type: event is in the near advance notice window (< 30 minutes to curtailment)",
            "ramp_up": "Load curtailment is ramping up to the full event target",
            "recovery": "Post-event recovery period; loads may rebound; grid rebound management in effect"
          },
          "use_case": "AI VTN agent issues DR events via OpenADR 2.0b protocol. 'Non_compliance_detected' during 'active' state triggers AI M&V agent to calculate baseline deviation and initiate penalty notification to the non-compliant VEN. 'Recovery' state triggers rebound management to prevent post-event demand surge.",
          "source": "OpenADR 2.0b specification — oadrPayload/oadrSignalPayload/signalType and eventStatus",
          "source_url": "https://www.openadr.org/",
          "notes": "'Far', 'near', 'ramp_up', and 'recovery' are OpenADR 2.0b signalType values used within active events. They are included here to provide a complete vocabulary for AI DR agents rather than requiring a separate enum."
        },
        {
          "enum_name": "DRResourceCurtailmentType",
          "label": "Dr Resource Curtailment Type",
          "otel_attribute": "energy.demand_response.curtailment_type",
          "opa_policy_path": "data.energy.demand_response.curtailment_type",
          "rego_input_key": "energy_demand_response_curtailment_type",
          "stability": "stable",
          "description": "Type of demand response curtailment or dispatch action requested of a resource. AI DR dispatch agents use this to select the correct control action for each asset type.",
          "permitted_values": [
            "load_shed_direct_control",
            "load_shed_price_signal",
            "hvac_setpoint_adjustment",
            "ev_charging_curtailment",
            "battery_discharge_dispatch",
            "der_export_increase",
            "interruptible_load_interrupt",
            "industrial_process_delay",
            "voluntary_reduction_request"
          ],
          "value_labels": {
            "load_shed_direct_control": "Load Shed Direct Control",
            "load_shed_price_signal": "Load Shed Price Signal",
            "hvac_setpoint_adjustment": "Hvac Setpoint Adjustment",
            "ev_charging_curtailment": "Ev Charging Curtailment",
            "battery_discharge_dispatch": "Battery Discharge Dispatch",
            "der_export_increase": "Der Export Increase",
            "interruptible_load_interrupt": "Interruptible Load Interrupt",
            "industrial_process_delay": "Industrial Process Delay",
            "voluntary_reduction_request": "Voluntary Reduction Request"
          },
          "regulatory_mappings": {
            "ferc_order_745": "FERC Order 745 — Demand response resources providing wholesale energy must be compensated at LMP; curtailment type determines eligibility",
            "ferc_order_2222": "FERC Order 2222 — DER aggregations: 'battery_discharge_dispatch' and 'der_export_increase' types are eligible for participation in organised markets"
          },
          "source": "OpenADR Alliance; FERC Order 745; IEEE 2030.5 SEP 2.0 control action types",
          "source_url": "https://www.openadr.org/"
        },
        {
          "enum_name": "VPPDispatchState",
          "label": "Vpp Dispatch State",
          "otel_attribute": "energy.vpp.dispatch_state",
          "opa_policy_path": "data.energy.vpp.dispatch_state",
          "rego_input_key": "energy_vpp_dispatch_state",
          "stability": "proposed",
          "description": "Operational dispatch state of a Virtual Power Plant (VPP) or DER aggregation managed by an AI dispatch agent. FERC Order 2222 DER aggregations participating in organised markets must maintain accurate dispatch state for market settlement.",
          "permitted_values": [
            "standby",
            "pre_dispatch_forecasting",
            "dispatched_charging",
            "dispatched_discharging",
            "dispatched_curtailing",
            "dispatched_exporting",
            "ramping",
            "at_target",
            "emergency_dispatch",
            "settling",
            "unavailable"
          ],
          "value_labels": {
            "standby": "Standby",
            "pre_dispatch_forecasting": "Pre Dispatch Forecasting",
            "dispatched_charging": "Dispatched Charging",
            "dispatched_discharging": "Dispatched Discharging",
            "dispatched_curtailing": "Dispatched Curtailing",
            "dispatched_exporting": "Dispatched Exporting",
            "ramping": "Ramping",
            "at_target": "At Target",
            "emergency_dispatch": "Emergency Dispatch",
            "settling": "Settling",
            "unavailable": "Unavailable"
          },
          "regulatory_mappings": {
            "ferc_order_2222": "FERC Order 2222 — DER aggregation dispatch must comply with RTO/ISO tariff obligations; state transitions must be logged for settlement verification",
            "eu_red_iii": "EU RED III — Aggregated DER dispatch states must be tracked for renewable energy guarantee of origin accounting"
          },
          "use_case": "AI VPP dispatch agent manages a portfolio of batteries, EV chargers, and flexible loads. Dispatch state drives settlement calculations and market position reporting to the ISO/RTO.",
          "source": "FERC Order 2222 — DER aggregation operational requirements; IEEE 2030.5; ENTSO-E TERRE balancing platform",
          "source_url": "https://www.ferc.gov/media/ferc-order-no-2222"
        }
      ]
    },
    {
      "subdomain": "NERC CIP Critical Infrastructure Protection",
      "description": "Covers NERC CIP v7 compliance monitoring enumerations for AI agents operating on or near Bulk Electric System (BES) Cyber Systems. All AI agents interacting with BCS assets must be classified under the applicable CIP standard for audit evidence generation.",
      "relevant_standards": [
        "NERC CIP-002-5.1a — BES Cyber System Categorization",
        "NERC CIP-003-8 — Security Management Controls",
        "NERC CIP-004-6 — Personnel & Training",
        "NERC CIP-005-7 — Electronic Security Perimeters",
        "NERC CIP-006-6 — Physical Security of BES Cyber Systems",
        "NERC CIP-007-6 — Systems Security Management",
        "NERC CIP-008-6 — Incident Reporting and Response Planning",
        "NERC CIP-009-6 — Recovery Plans for BES Cyber Systems",
        "NERC CIP-010-4 — Configuration Change Management and Vulnerability Management",
        "NERC CIP-011-3 — Information Protection",
        "NERC CIP-013-2 — Supply Chain Risk Management",
        "NERC CIP-014-3 — Physical Security"
      ],
      "categories": [
        {
          "enum_name": "NERCCIPStandard",
          "label": "NERC CIP Standard",
          "otel_attribute": "energy.nerc_cip.standard",
          "opa_policy_path": "data.energy.nerc_cip.standard",
          "rego_input_key": "energy_nerc_cip_standard",
          "stability": "stable",
          "description": "NERC CIP v7 standard identifier. AI compliance monitoring agents tag every action on a BES Cyber System with the applicable CIP standard(s) for automated audit evidence collection. Used to link AI agent actions to specific CIP requirements in the compliance evidence package.",
          "permitted_values": [
            "CIP_002_bes_cyber_system_categorization",
            "CIP_003_security_management_controls",
            "CIP_004_personnel_and_training",
            "CIP_005_electronic_security_perimeter",
            "CIP_006_physical_security",
            "CIP_007_systems_security_management",
            "CIP_008_incident_reporting_response",
            "CIP_009_recovery_plans",
            "CIP_010_configuration_change_management",
            "CIP_011_information_protection",
            "CIP_013_supply_chain_risk_management",
            "CIP_014_physical_security_transmission"
          ],
          "value_labels": {
            "CIP_002_bes_cyber_system_categorization": "CIP-002 BES Cyber System Categorization",
            "CIP_003_security_management_controls": "CIP-003 Security Management Controls",
            "CIP_004_personnel_and_training": "CIP-004 Personnel and Training",
            "CIP_005_electronic_security_perimeter": "CIP-005 Electronic Security Perimeter",
            "CIP_006_physical_security": "CIP-006 Physical Security",
            "CIP_007_systems_security_management": "CIP-007 Systems Security Management",
            "CIP_008_incident_reporting_response": "CIP-008 Incident Reporting and Response",
            "CIP_009_recovery_plans": "CIP-009 Recovery Plans",
            "CIP_010_configuration_change_management": "CIP-010 Configuration Change Management",
            "CIP_011_information_protection": "CIP-011 Information Protection",
            "CIP_013_supply_chain_risk_management": "CIP-013 Supply Chain Risk Management",
            "CIP_014_physical_security_transmission": "CIP-014 Physical Security"
          },
          "use_case": "AI NERC CIP compliance agent tags every automated action on a BCS asset (patch deployment, configuration change, access grant, log review) with the applicable CIP standard. This generates machine-readable audit evidence for NERC Regional Entity audits and internal compliance self-assessments.",
          "source": "NERC CIP Standards v7 — NERC Reliability Standards",
          "source_url": "https://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx"
        },
        {
          "enum_name": "BESCyberSystemImpactLevel",
          "label": "BES Cyber System Impact Level",
          "otel_attribute": "energy.nerc_cip.bcs_impact_level",
          "opa_policy_path": "data.energy.nerc_cip.bcs_impact_level",
          "rego_input_key": "energy_nerc_cip_bcs_impact_level",
          "stability": "stable",
          "description": "NERC CIP-002-5.1a BES Cyber System impact level classification. Determines the set of CIP requirements applicable to a BCS asset. AI agents must not take configuration or change actions on high or medium impact BCS assets without meeting CIP-010 change management requirements.",
          "permitted_values": [
            "high_impact",
            "medium_impact",
            "low_impact",
            "not_bes_cyber_system"
          ],
          "value_labels": {
            "high_impact": "High Impact",
            "medium_impact": "Medium Impact",
            "low_impact": "Low Impact",
            "not_bes_cyber_system": "Not a BES Cyber System"
          },
          "code_definitions": {
            "high_impact": "BCS associated with Control Centers performing reliability tasks for assets at 500 kV or above, or for major generation (> 1500 MW); most stringent CIP requirements apply",
            "medium_impact": "BCS associated with generation 300 MW or above at a single plant, or transmission assets at 200 kV or above meeting specific criteria; intermediate CIP requirements apply",
            "low_impact": "BCS that do not meet high or medium impact criteria but are still part of the BES; streamlined CIP requirements under CIP-003-8 Attachment 1",
            "not_bes_cyber_system": "Asset is not classified as a BES Cyber System; NERC CIP requirements do not apply; standard corporate IT security applies"
          },
          "regulatory_mappings": {
            "nerc_cip_002": "NERC CIP-002-5.1a — BES Cyber System categorization methodology; high and medium impact require full CIP-003 through CIP-013 compliance"
          },
          "use_case": "OPA policy enforces different HITL requirements based on BCS impact level. Any AI-initiated configuration change on a 'high_impact' BCS requires documented Change Advisory Board approval and CIP-010 change evidence. 'Low_impact' assets permit greater AI autonomy under CIP-003-8 Attachment 1.",
          "source": "NERC CIP-002-5.1a — BES Cyber System categorization criteria",
          "source_url": "https://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx"
        },
        {
          "enum_name": "CIPComplianceEvidenceType",
          "label": "CIP Compliance Evidence Type",
          "otel_attribute": "energy.nerc_cip.evidence_type",
          "opa_policy_path": "data.energy.nerc_cip.evidence_type",
          "rego_input_key": "energy_nerc_cip_evidence_type",
          "stability": "proposed",
          "description": "Type of NERC CIP compliance evidence generated by an AI agent action. AI compliance monitoring agents auto-generate evidence packages; this enum classifies the evidence type for the audit record.",
          "permitted_values": [
            "access_log_review",
            "configuration_baseline_snapshot",
            "change_management_record",
            "vulnerability_assessment",
            "patch_application_record",
            "incident_response_activation",
            "recovery_plan_test_record",
            "supply_chain_vendor_assessment",
            "physical_access_log",
            "personnel_training_completion",
            "interactive_remote_access_log",
            "information_protection_review"
          ],
          "value_labels": {
            "access_log_review": "Access Log Review",
            "configuration_baseline_snapshot": "Configuration Baseline Snapshot",
            "change_management_record": "Change Management Record",
            "vulnerability_assessment": "Vulnerability Assessment",
            "patch_application_record": "Patch Application Record",
            "incident_response_activation": "Incident Response Activation",
            "recovery_plan_test_record": "Recovery Plan Test Record",
            "supply_chain_vendor_assessment": "Supply Chain Vendor Assessment",
            "physical_access_log": "Physical Access Log",
            "personnel_training_completion": "Personnel Training Completion",
            "interactive_remote_access_log": "Interactive Remote Access Log",
            "information_protection_review": "Information Protection Review"
          },
          "use_case": "AI NERC CIP compliance agent automatically generates evidence of type 'access_log_review' every 35 days for high-impact BCS (per CIP-007 R4 requirement). Evidence records are tagged with the generating agent, timestamp, BCS asset ID, and CIP requirement reference.",
          "source": "NERC CIP v7 evidence retention and documentation requirements across CIP-003 through CIP-013",
          "source_url": "https://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx"
        }
      ]
    },
    {
      "subdomain": "Renewable Energy & DER Management",
      "description": "Covers IEC 61400, FERC Order 2222, and IEEE 1547-2018 enumerations for AI management of renewable generation assets, battery storage systems, and distributed energy resource (DER) aggregations.",
      "relevant_standards": [
        "IEC 61400-25 — Wind Turbines — Communications for Monitoring and Control",
        "IEC 62109-1/2 — Safety of Power Converters for Use in PV Power Systems",
        "IEEE 1547-2018 — Interconnection and Interoperability of DERs with Electric Power Systems",
        "FERC Order 2222 — DER Aggregation Participation in Markets",
        "EU Renewable Energy Directive III (RED III) 2023/2413",
        "IEC 62933-1 — Electrical Energy Storage Systems"
      ],
      "categories": [
        {
          "enum_name": "RenewableEnergyAssetType",
          "label": "Renewable Energy Asset Type",
          "otel_attribute": "energy.renewable.asset_type",
          "opa_policy_path": "data.energy.renewable.asset_type",
          "rego_input_key": "energy_renewable_asset_type",
          "stability": "stable",
          "description": "Classification of a renewable or distributed energy asset type. AI energy management agents use this to select the correct dispatch model, forecasting algorithm, and regulatory compliance profile for each asset.",
          "permitted_values": [
            "solar_pv_utility_scale",
            "solar_pv_distributed_rooftop",
            "wind_onshore",
            "wind_offshore",
            "battery_storage_grid_scale",
            "battery_storage_behind_meter",
            "hydroelectric_large",
            "hydroelectric_run_of_river",
            "geothermal",
            "hydrogen_electrolyzer",
            "hydrogen_fuel_cell",
            "virtual_power_plant",
            "distributed_energy_resource_aggregation",
            "combined_heat_and_power",
            "biomass_generation",
            "tidal_wave_marine"
          ],
          "value_labels": {
            "solar_pv_utility_scale": "Solar Pv Utility Scale",
            "solar_pv_distributed_rooftop": "Solar Pv Distributed Rooftop",
            "wind_onshore": "Wind Onshore",
            "wind_offshore": "Wind Offshore",
            "battery_storage_grid_scale": "Battery Storage Grid Scale",
            "battery_storage_behind_meter": "Battery Storage Behind Meter",
            "hydroelectric_large": "Hydroelectric Large",
            "hydroelectric_run_of_river": "Hydroelectric Run of River",
            "geothermal": "Geothermal",
            "hydrogen_electrolyzer": "Hydrogen Electrolyzer",
            "hydrogen_fuel_cell": "Hydrogen Fuel Cell",
            "virtual_power_plant": "Virtual Power Plant",
            "distributed_energy_resource_aggregation": "Distributed Energy Resource Aggregation",
            "combined_heat_and_power": "Combined Heat and Power",
            "biomass_generation": "Biomass Generation",
            "tidal_wave_marine": "Tidal Wave Marine"
          },
          "regulatory_mappings": {
            "ferc_order_2222": "FERC Order 2222 — 'virtual_power_plant' and 'distributed_energy_resource_aggregation' types are eligible for organised market participation as DER aggregations",
            "eu_red_iii": "EU RED III — All asset types except fossil-based CHP contribute to the 42.5% renewable energy target; guarantee of origin certificates required",
            "ieee_1547": "IEEE 1547-2018 — Interconnection requirements apply to 'solar_pv_distributed_rooftop', 'battery_storage_behind_meter', and other distribution-connected DER types"
          },
          "source": "IEC 61400-25; IEC 62109; IEEE 1547-2018; FERC Order 2222; IEC 62933-1",
          "source_url": "https://www.ferc.gov/media/ferc-order-no-2222"
        },
        {
          "enum_name": "BatteryStorageOperationMode",
          "label": "Battery Storage Operation Mode",
          "otel_attribute": "energy.battery_storage.operation_mode",
          "opa_policy_path": "data.energy.battery_storage.operation_mode",
          "rego_input_key": "energy_battery_storage_operation_mode",
          "stability": "stable",
          "description": "Operating mode of a grid-scale or behind-the-meter battery energy storage system (BESS) as managed by an AI dispatch agent. Mode selection drives inverter control commands and market participation eligibility.",
          "permitted_values": [
            "idle",
            "charging_grid",
            "charging_renewable_only",
            "discharging_arbitrage",
            "discharging_peak_shaving",
            "discharging_frequency_response",
            "discharging_voltage_support",
            "discharging_backup_power",
            "discharging_emergency_dispatch",
            "frequency_regulation_symmetric",
            "state_of_charge_balancing",
            "thermal_management_hold",
            "fault_recovery"
          ],
          "value_labels": {
            "idle": "Idle",
            "charging_grid": "Charging Grid",
            "charging_renewable_only": "Charging Renewable Only",
            "discharging_arbitrage": "Discharging Arbitrage",
            "discharging_peak_shaving": "Discharging Peak Shaving",
            "discharging_frequency_response": "Discharging Frequency Response",
            "discharging_voltage_support": "Discharging Voltage Support",
            "discharging_backup_power": "Discharging Backup Power",
            "discharging_emergency_dispatch": "Discharging Emergency Dispatch",
            "frequency_regulation_symmetric": "Frequency Regulation Symmetric",
            "state_of_charge_balancing": "State of Charge Balancing",
            "thermal_management_hold": "Thermal Management Hold",
            "fault_recovery": "Fault Recovery"
          },
          "code_definitions": {
            "discharging_frequency_response": "Battery responding to automatic generation control (AGC) or frequency deviation signal; sub-second response; highest grid value application",
            "frequency_regulation_symmetric": "Battery providing symmetric regulation (both up and down) to ISO/RTO regulation market; registered capacity committed",
            "thermal_management_hold": "Battery is paused from normal operation due to cell temperature limits; AI dispatch blocked until thermal condition clears",
            "fault_recovery": "Battery management system has detected a fault; AI dispatch blocked; maintenance workflow initiated"
          },
          "regulatory_mappings": {
            "ferc_order_841": "FERC Order 841 — Electric Storage Participation in Markets: storage resources must be able to provide all services they are technically capable of; mode determines eligibility",
            "ferc_order_2222": "FERC Order 2222 — Battery storage DER aggregation must report active operation mode for market settlement"
          },
          "use_case": "AI BESS dispatch agent selects operation mode based on real-time price signals, grid frequency, and state of charge. OPA policy blocks 'discharging_emergency_dispatch' mode change without grid operations HITL confirmation for grid-scale assets.",
          "source": "IEC 62933-1 BESS operational definitions; FERC Orders 841 and 2222; ISO/RTO storage participation tariffs",
          "source_url": "https://www.ferc.gov/"
        },
        {
          "enum_name": "RenewableForecastConfidenceLevel",
          "label": "Renewable Forecast Confidence Level",
          "otel_attribute": "energy.renewable.forecast_confidence",
          "opa_policy_path": "data.energy.renewable.forecast_confidence",
          "rego_input_key": "energy_renewable_forecast_confidence",
          "stability": "proposed",
          "description": "Confidence level of an AI renewable generation forecast (solar irradiance, wind speed, hydro inflow). Used by AI scheduling agents to determine whether to rely on the forecast for commitment decisions or request human review.",
          "permitted_values": [
            "high_confidence",
            "medium_confidence",
            "low_confidence",
            "very_low_confidence",
            "forecast_unavailable"
          ],
          "value_labels": {
            "high_confidence": "High Confidence",
            "medium_confidence": "Medium Confidence",
            "low_confidence": "Low Confidence",
            "very_low_confidence": "Very Low Confidence",
            "forecast_unavailable": "Forecast Unavailable"
          },
          "ordered": true,
          "value_ordinals": {
            "high_confidence": 1,
            "medium_confidence": 2,
            "low_confidence": 3,
            "very_low_confidence": 4,
            "forecast_unavailable": 5
          },
          "use_case": "AI unit commitment agent uses renewable forecast confidence to determine scheduling risk. 'Low_confidence' or 'very_low_confidence' forecasts trigger additional reserve procurement and HITL notification to system operator before final day-ahead commitment submission.",
          "source": "ENTSO-E SOGL (System Operation Guideline) — generation forecast accuracy requirements; NERC BAL-001 — Real Power Balancing Control Performance",
          "source_url": "https://www.entsoe.eu/network_codes/"
        }
      ]
    },
    {
      "subdomain": "Energy Market Operations & Settlement",
      "description": "Covers FERC and ENTSO-E energy market participation, wholesale settlement, and congestion management enumerations. AI energy trading and dispatch optimisation agents must use these values for ISO/RTO market interface compliance.",
      "relevant_standards": [
        "FERC — Federal Energy Regulatory Commission market rules and tariffs",
        "ENTSO-E Network Code on Electricity Balancing (EB NC) — EU balancing market",
        "ENTSO-E CACM Guideline — Capacity Allocation and Congestion Management",
        "ISO/RTO tariff provisions — PJM, MISO, CAISO, ERCOT, NYISO, ISO-NE, SPP",
        "NAESB WEQ — Wholesale Electric Quadrant standards for EDI"
      ],
      "categories": [
        {
          "enum_name": "EnergyMarketProductType",
          "label": "Energy Market Product Type",
          "otel_attribute": "energy.market.product_type",
          "opa_policy_path": "data.energy.market.product_type",
          "rego_input_key": "energy_market_product_type",
          "stability": "stable",
          "description": "Type of wholesale energy market product being bid, offered, or settled by an AI energy trading agent. Determines applicable market rules, telemetry requirements, and settlement processes.",
          "permitted_values": [
            "energy_day_ahead",
            "energy_real_time",
            "regulation_up",
            "regulation_down",
            "spinning_reserve",
            "non_spinning_reserve",
            "supplemental_reserve",
            "capacity_obligation",
            "ancillary_services_bundle",
            "financial_transmission_right",
            "renewable_energy_certificate",
            "carbon_allowance_eu_ets",
            "virtual_bid_offer",
            "demand_response_wholesale"
          ],
          "value_labels": {
            "energy_day_ahead": "Energy Day Ahead",
            "energy_real_time": "Energy Real-Time",
            "regulation_up": "Regulation Up",
            "regulation_down": "Regulation Down",
            "spinning_reserve": "Spinning Reserve",
            "non_spinning_reserve": "Non Spinning Reserve",
            "supplemental_reserve": "Supplemental Reserve",
            "capacity_obligation": "Capacity Obligation",
            "ancillary_services_bundle": "Ancillary Services Bundle",
            "financial_transmission_right": "Financial Transmission Right",
            "renewable_energy_certificate": "Renewable Energy Certificate",
            "carbon_allowance_eu_ets": "Carbon Allowance EU Ets",
            "virtual_bid_offer": "Virtual Bid Offer",
            "demand_response_wholesale": "Demand Response Wholesale"
          },
          "regulatory_mappings": {
            "ferc_order_745": "FERC Order 745 — 'demand_response_wholesale' must be compensated at LMP when it is cost-effective",
            "ferc_order_2222": "FERC Order 2222 — DER aggregations may participate in all applicable product types",
            "eu_ets": "EU ETS — 'carbon_allowance_eu_ets' product requires EU Allowance Registry account and verified emissions data"
          },
          "use_case": "AI energy trading agent selects product type for each market bid/offer. OPA policy enforces that 'carbon_allowance_eu_ets' trades require a verified emissions report on file for the compliance period before allowances may be surrendered.",
          "source": "FERC market tariffs; ENTSO-E EB Network Code; ISO/RTO tariff product definitions",
          "source_url": "https://www.ferc.gov/"
        },
        {
          "enum_name": "MarketBidOfferStatus",
          "label": "Market Bid Offer Status",
          "otel_attribute": "energy.market.bid_offer_status",
          "opa_policy_path": "data.energy.market.bid_offer_status",
          "rego_input_key": "energy_market_bid_offer_status",
          "stability": "stable",
          "description": "Lifecycle status of an energy market bid or offer submitted by an AI trading agent to an ISO/RTO or power exchange. AI trading agents must log all bid status transitions for FERC market behaviour rule compliance and post-trade surveillance.",
          "permitted_values": [
            "draft",
            "submitted",
            "accepted",
            "partially_accepted",
            "rejected",
            "cleared",
            "not_cleared",
            "dispatched",
            "settled",
            "disputed",
            "cancelled_before_close"
          ],
          "value_labels": {
            "draft": "Draft",
            "submitted": "Submitted",
            "accepted": "Accepted",
            "partially_accepted": "Partially Accepted",
            "rejected": "Rejected",
            "cleared": "Cleared",
            "not_cleared": "Not Cleared",
            "dispatched": "Dispatched",
            "settled": "Settled",
            "disputed": "Disputed",
            "cancelled_before_close": "Cancelled Before Close"
          },
          "regulatory_mappings": {
            "ferc_miso_pjm_caiso": "FERC market behaviour rules — AI-submitted bids must comply with market power mitigation thresholds; automated bidding strategies must be documented and disclosed to ISO/RTO on request",
            "eu_remit": "EU REMIT (Regulation on Wholesale Energy Market Integrity and Transparency) — all wholesale market transactions must be reported to ACER; AI trading agent transaction logs are REMIT records"
          },
          "use_case": "AI energy trading agent submits day-ahead energy bids. 'Partially_accepted' status triggers re-optimisation for real-time market. 'Disputed' status triggers human trader review and ISO/RTO dispute resolution workflow.",
          "source": "ISO/RTO bid/offer status code standards; ENTSO-E XBID market platform status codes",
          "source_url": "https://www.ferc.gov/"
        },
        {
          "enum_name": "CongestionManagementMethod",
          "label": "Congestion Management Method",
          "otel_attribute": "energy.market.congestion_method",
          "opa_policy_path": "data.energy.market.congestion_method",
          "rego_input_key": "energy_market_congestion_method",
          "stability": "stable",
          "description": "Transmission congestion management method employed by the AI grid optimisation agent. Different methods have different FERC/ENTSO-E regulatory requirements for transparency and market non-discrimination.",
          "permitted_values": [
            "locational_marginal_pricing",
            "flow_based_market_coupling",
            "redispatch",
            "counter_trading",
            "financial_transmission_rights",
            "available_transfer_capacity",
            "security_constrained_economic_dispatch"
          ],
          "value_labels": {
            "locational_marginal_pricing": "Locational Marginal Pricing",
            "flow_based_market_coupling": "Flow Based Market Coupling",
            "redispatch": "Redispatch",
            "counter_trading": "Counter Trading",
            "financial_transmission_rights": "Financial Transmission Rights",
            "available_transfer_capacity": "Available Transfer Capacity",
            "security_constrained_economic_dispatch": "Security Constrained Economic Dispatch"
          },
          "source": "FERC Order 2000 — Regional Transmission Organisations; ENTSO-E CACM Guideline — Flow-Based Market Coupling",
          "source_url": "https://www.entsoe.eu/network_codes/"
        }
      ]
    },
    {
      "subdomain": "Emissions Monitoring & Environmental Compliance",
      "description": "Covers EPA CEMS, EU ETS, and environmental compliance enumerations for AI-driven continuous emissions monitoring, allowance management, and regulatory reporting. AI CEMS data quality agents must use these values for EPA 40 CFR Part 75 and EU MRR compliance.",
      "relevant_standards": [
        "EPA 40 CFR Part 75 — Continuous Emission Monitoring (CEMS) — Acid Rain Program",
        "EPA 40 CFR Part 97 — CSAPR (Cross-State Air Pollution Rule)",
        "EU ETS MRR — Monitoring and Reporting Regulation (EU) 2018/2066",
        "EU ETS Directive 2003/87/EC as amended — Phase 4 (2021-2030)",
        "ISO 14064-1:2018 — Greenhouse Gas Accounting and Verification",
        "EPA EPCRA Section 313 — Toxic Release Inventory (TRI) reporting"
      ],
      "categories": [
        {
          "enum_name": "CEMSDataQualityFlag",
          "label": "Cems Data Quality Flag",
          "otel_attribute": "energy.cems.data_quality_flag",
          "opa_policy_path": "data.energy.cems.data_quality_flag",
          "rego_input_key": "energy_cems_data_quality_flag",
          "stability": "stable",
          "description": "EPA 40 CFR Part 75 / EU MRR CEMS data quality flag. AI CEMS data quality agents apply these flags to emissions measurement records. Records flagged as 'missing' or 'substitute' must use EPA-prescribed substitution methodology — AI cannot use arbitrary substitute values.",
          "permitted_values": [
            "quality_assured",
            "non_quality_assured_out_of_control",
            "missing_data_substitute_applied",
            "monitoring_system_out_of_service",
            "relative_accuracy_test_audit_required",
            "linearity_check_failed",
            "calibration_error",
            "stack_flow_anomaly",
            "exceeds_range_high",
            "exceeds_range_low"
          ],
          "value_labels": {
            "quality_assured": "Quality Assured",
            "non_quality_assured_out_of_control": "Non Quality Assured Out of Control",
            "missing_data_substitute_applied": "Missing Data Substitute Applied",
            "monitoring_system_out_of_service": "Monitoring System Out of Service",
            "relative_accuracy_test_audit_required": "Relative Accuracy Test Audit Required",
            "linearity_check_failed": "Linearity Check Failed",
            "calibration_error": "Calibration Error",
            "stack_flow_anomaly": "Stack Flow Anomaly",
            "exceeds_range_high": "Exceeds Range High",
            "exceeds_range_low": "Exceeds Range Low"
          },
          "code_definitions": {
            "quality_assured": "Data meets all EPA 40 CFR Part 75 quality assurance criteria; valid for regulatory reporting",
            "non_quality_assured_out_of_control": "CEMS is in an out-of-control period per QA/QC criteria; substitute data methodology required per 40 CFR Part 75 Appendix A",
            "missing_data_substitute_applied": "Measured data is unavailable; EPA-prescribed missing data substitution has been applied (typically 90th percentile of quality-assured data for the operating hour type)",
            "relative_accuracy_test_audit_required": "RATA (Relative Accuracy Test Audit) is due or overdue; continued quality-assured status is conditional on RATA completion"
          },
          "regulatory_mappings": {
            "epa_40_cfr_75": "40 CFR Part 75 — All CEMS data submitted to EPA CAMPD must carry quality flag; 'missing_data_substitute_applied' records must use prescribed substitution values",
            "eu_ets_mrr": "EU MRR 2018/2066 — CEMS data quality must meet Tier requirements; non-conforming data must be reported to competent authority"
          },
          "use_case": "AI CEMS quality agent monitors real-time emissions data streams. 'Non_quality_assured_out_of_control' flag triggers automatic substitution data methodology application. OPA policy blocks facility from reporting EPA 'quality_assured' data for any hour where the underlying CEMS record carries a non-QA flag.",
          "source": "EPA 40 CFR Part 75 Appendix A — CEMS QA/QC requirements; EU MRR (2018/2066) data quality tiers",
          "source_url": "https://www.epa.gov/airmarkets"
        },
        {
          "enum_name": "EUETSComplianceStatus",
          "label": "EU Ets Compliance Status",
          "otel_attribute": "energy.eu_ets.compliance_status",
          "opa_policy_path": "data.energy.eu_ets.compliance_status",
          "rego_input_key": "energy_eu_ets_compliance_status",
          "stability": "stable",
          "description": "EU Emissions Trading System compliance status for an installation as managed by an AI allowance management agent. All EU ETS installations must surrender allowances equal to verified emissions by April 30 each year.",
          "permitted_values": [
            "compliant_surplus",
            "compliant_balanced",
            "at_risk_shortfall_projected",
            "non_compliant_shortfall_confirmed",
            "surrendered_pending_verification",
            "verified_compliant",
            "penalty_assessment_initiated",
            "allowance_purchase_in_progress",
            "monitoring_plan_non_conformity"
          ],
          "value_labels": {
            "compliant_surplus": "Compliant Surplus",
            "compliant_balanced": "Compliant Balanced",
            "at_risk_shortfall_projected": "At Risk Shortfall Projected",
            "non_compliant_shortfall_confirmed": "Non Compliant Shortfall Confirmed",
            "surrendered_pending_verification": "Surrendered Pending Verification",
            "verified_compliant": "Verified Compliant",
            "penalty_assessment_initiated": "Penalty Assessment Initiated",
            "allowance_purchase_in_progress": "Allowance Purchase in Progress",
            "monitoring_plan_non_conformity": "Monitoring Plan Non Conformity"
          },
          "code_definitions": {
            "compliant_surplus": "Installation has more allocated allowances than verified emissions; surplus may be banked or sold",
            "at_risk_shortfall_projected": "AI forecast indicates allowances will be insufficient for the compliance year; allowance procurement recommended",
            "non_compliant_shortfall_confirmed": "Verified emissions exceed surrendered allowances; excess emissions penalty (100 EUR/tCO2) and make-good obligation triggered",
            "verified_compliant": "Verified report accepted by national competent authority; surrender confirmed; compliance year closed"
          },
          "regulatory_mappings": {
            "eu_ets_directive": "EU ETS Directive 2003/87/EC Article 16 — Non-compliance penalty: 100 EUR per excess tonne CO2eq plus make-good obligation in following year",
            "eu_ets_mrr": "EU MRR 2018/2066 — Annual monitoring report and verification report required; AI-generated data must meet MRR Tier quality requirements"
          },
          "use_case": "AI allowance management agent monitors installation compliance status continuously. 'At_risk_shortfall_projected' triggers procurement recommendation workflow. OPA policy blocks AI from autonomously purchasing allowances above a defined threshold — large EU ETS purchases require HITL approval.",
          "source": "EU ETS Directive 2003/87/EC; EU MRR 2018/2066; EU Allowance Registry regulations",
          "source_url": "https://ec.europa.eu/clima/eu-action/eu-emissions-trading-system-eu-ets_en"
        },
        {
          "enum_name": "GHGEmissionScope",
          "label": "GHG Emission Scope",
          "otel_attribute": "energy.ghg.emission_scope",
          "opa_policy_path": "data.energy.ghg.emission_scope",
          "rego_input_key": "energy_ghg_emission_scope",
          "stability": "stable",
          "description": "GHG Protocol / ISO 14064-1 emission scope classification. AI emissions accounting agents must correctly classify all emission sources before aggregating for regulatory reporting and CSRD/SEC climate disclosure.",
          "permitted_values": [
            "scope_1_direct",
            "scope_2_location_based",
            "scope_2_market_based",
            "scope_3_upstream",
            "scope_3_downstream",
            "scope_3_total"
          ],
          "value_labels": {
            "scope_1_direct": "Scope 1 Direct",
            "scope_2_location_based": "Scope 2 Location Based",
            "scope_2_market_based": "Scope 2 Market Based",
            "scope_3_upstream": "Scope 3 Upstream",
            "scope_3_downstream": "Scope 3 Downstream",
            "scope_3_total": "Scope 3 Total"
          },
          "regulatory_mappings": {
            "eu_csrd_esrs_e1": "EU CSRD ESRS E1 — Climate change: Scope 1, 2, and material Scope 3 emissions must be disclosed; energy companies' Scope 3 category 11 (use of sold products) is typically material",
            "sec_climate_rule": "SEC Climate Disclosure Rule (2024) — Scope 1 and 2 required for large accelerated filers; Scope 3 if material or if targets include Scope 3",
            "eu_ets": "EU ETS covers Scope 1 direct emissions only from covered installations"
          },
          "source": "GHG Protocol Corporate Standard; ISO 14064-1:2018; EU CSRD ESRS E1",
          "source_url": "https://ghgprotocol.org/"
        }
      ]
    },
    {
      "subdomain": "Pipeline Integrity & Oil and Gas Operations",
      "description": "Covers PHMSA pipeline safety, API RP 1173 pipeline safety management, and AI-driven inline inspection data analysis enumerations for pipeline operators.",
      "relevant_standards": [
        "PHMSA 49 CFR Part 192 — Transportation of Natural and Other Gas by Pipeline",
        "PHMSA 49 CFR Part 195 — Transportation of Hazardous Liquids by Pipeline",
        "API RP 1173 — Pipeline Safety Management Systems",
        "API 1160 — Managing System Integrity for Hazardous Liquid Pipelines",
        "ASME B31.8S — Managing System Integrity of Gas Pipelines",
        "API RP 5L3 — Conducting Drop-Weight Tear Tests on Line Pipe"
      ],
      "categories": [
        {
          "enum_name": "PipelineIntegrityThreatCategory",
          "label": "Pipeline Integrity Threat Category",
          "otel_attribute": "energy.pipeline.integrity_threat_category",
          "opa_policy_path": "data.energy.pipeline.integrity_threat_category",
          "rego_input_key": "energy_pipeline_integrity_threat_category",
          "stability": "stable",
          "description": "Pipeline integrity threat category per ASME B31.8S and API 1160 / API RP 1173. AI inline inspection analysis agents classify anomalies by threat category to prioritise dig and repair decisions.",
          "permitted_values": [
            "internal_corrosion",
            "external_corrosion",
            "stress_corrosion_cracking",
            "manufacturing_defect",
            "construction_defect_weld",
            "equipment_malfunction",
            "third_party_mechanical_damage",
            "incorrect_operations",
            "weather_outside_force",
            "geohazard_movement",
            "seismic_activity",
            "settlement_subsidence"
          ],
          "value_labels": {
            "internal_corrosion": "Internal Corrosion",
            "external_corrosion": "External Corrosion",
            "stress_corrosion_cracking": "Stress Corrosion Cracking",
            "manufacturing_defect": "Manufacturing Defect",
            "construction_defect_weld": "Construction Defect Weld",
            "equipment_malfunction": "Equipment Malfunction",
            "third_party_mechanical_damage": "Third Party Mechanical Damage",
            "incorrect_operations": "Incorrect Operations",
            "weather_outside_force": "Weather Outside Force",
            "geohazard_movement": "Geohazard Movement",
            "seismic_activity": "Seismic Activity",
            "settlement_subsidence": "Settlement Subsidence"
          },
          "regulatory_mappings": {
            "phmsa_49_cfr_192": "49 CFR 192.917 — Threat identification required for gas transmission pipeline integrity management programmes",
            "phmsa_49_cfr_195": "49 CFR 195.452 — Hazardous liquid pipeline integrity management: threat identification and risk assessment required",
            "api_rp_1173": "API RP 1173 — Pipeline Safety Management System: threat identification feeds risk assessment and mitigation planning"
          },
          "use_case": "AI inline inspection analysis agent classifies pipe anomalies from ILI (In-Line Inspection) tool data by threat category. 'Stress_corrosion_cracking' and 'construction_defect_weld' classifications trigger priority excavation assessment due to potential for sudden failure.",
          "source": "ASME B31.8S — Sections 2 and 4 threat categories; API 1160 integrity threat taxonomy; PHMSA IMP rule threat categories",
          "source_url": "https://www.phmsa.dot.gov/pipeline"
        },
        {
          "enum_name": "PipelineAnomalySeverity",
          "label": "Pipeline Anomaly Severity",
          "otel_attribute": "energy.pipeline.anomaly_severity",
          "opa_policy_path": "data.energy.pipeline.anomaly_severity",
          "rego_input_key": "energy_pipeline_anomaly_severity",
          "stability": "stable",
          "description": "Severity classification of a pipeline anomaly as assessed by AI inline inspection analysis. Determines PHMSA-mandated response timeline for remediation.",
          "permitted_values": [
            "immediate_remediation_required",
            "scheduled_remediation_1_year",
            "scheduled_remediation_5_years",
            "monitor_no_immediate_action",
            "below_detection_threshold",
            "indeterminate_reinspection_required"
          ],
          "value_labels": {
            "immediate_remediation_required": "Immediate Remediation Required",
            "scheduled_remediation_1_year": "Scheduled Remediation 1 Year",
            "scheduled_remediation_5_years": "Scheduled Remediation 5 Years",
            "monitor_no_immediate_action": "Monitor No Immediate Action",
            "below_detection_threshold": "Below Detection Threshold",
            "indeterminate_reinspection_required": "Indeterminate Reinspection Required"
          },
          "code_definitions": {
            "immediate_remediation_required": "Anomaly meets or exceeds PHMSA immediate action criteria; pipeline pressure reduction or shutdown may be required; HITL mandatory",
            "scheduled_remediation_1_year": "Anomaly requires remediation within one year per PHMSA IMP rules; dig and repair scheduled",
            "scheduled_remediation_5_years": "Anomaly documented for next IMP reassessment cycle; no immediate action required"
          },
          "regulatory_mappings": {
            "phmsa_49_cfr_192_933": "49 CFR 192.933 — Response timelines for gas transmission anomalies: immediate, 60-day, 180-day, and scheduled categories",
            "phmsa_49_cfr_195_452": "49 CFR 195.452(h) — Response timelines for hazardous liquid anomalies"
          },
          "use_case": "OPA policy blocks AI from autonomously classifying any anomaly as 'below_detection_threshold' on a pipeline segment in a High Consequence Area (HCA) — HCA anomalies require human integrity engineer review.",
          "source": "PHMSA 49 CFR 192.933 and 195.452 response criteria; ASME B31.8S anomaly severity assessment",
          "source_url": "https://www.phmsa.dot.gov/pipeline"
        }
      ]
    },
    {
      "subdomain": "Water & Wastewater Operations",
      "description": "Covers AI-driven water utility operations enumerations including treatment process state, water quality compliance, and cyber-physical security for water sector critical infrastructure.",
      "relevant_standards": [
        "EPA Safe Drinking Water Act (SDWA) — National Primary Drinking Water Regulations",
        "EPA Clean Water Act (CWA) — NPDES permit effluent limits",
        "AWWA Cybersecurity Guidance for Water Utilities (2023)",
        "America's Water Infrastructure Act (AWIA 2018) — Risk and resilience assessments",
        "EPA WaterISAC — Water sector threat intelligence sharing"
      ],
      "categories": [
        {
          "enum_name": "WaterTreatmentProcessState",
          "label": "Water Treatment Process State",
          "otel_attribute": "energy.water.treatment_process_state",
          "opa_policy_path": "data.energy.water.treatment_process_state",
          "rego_input_key": "energy_water_treatment_process_state",
          "stability": "proposed",
          "description": "Operational state of a water or wastewater treatment process unit as managed by an AI process control agent. AI autonomous control of chemical dosing is the most common agentic AI application in water utilities.",
          "permitted_values": [
            "normal_automatic",
            "normal_manual_override",
            "process_upset",
            "chemical_dosing_alarm",
            "low_flow_bypass",
            "offline_maintenance",
            "emergency_shutdown",
            "post_storm_high_turbidity",
            "cyber_incident_isolated"
          ],
          "value_labels": {
            "normal_automatic": "Normal Automatic",
            "normal_manual_override": "Normal Manual Override",
            "process_upset": "Process Upset",
            "chemical_dosing_alarm": "Chemical Dosing Alarm",
            "low_flow_bypass": "Low Flow Bypass",
            "offline_maintenance": "Offline Maintenance",
            "emergency_shutdown": "Emergency Shutdown",
            "post_storm_high_turbidity": "Post Storm High Turbidity",
            "cyber_incident_isolated": "Cyber Incident Isolated"
          },
          "code_definitions": {
            "normal_automatic": "AI control agent is operating the process unit within normal parameters; all setpoints within regulatory limits",
            "normal_manual_override": "Operator has taken manual control of one or more setpoints; AI agent is in advisory-only mode",
            "cyber_incident_isolated": "Process unit has been isolated from control network due to a cyber incident; manual-only operation until security clearance"
          },
          "regulatory_mappings": {
            "epa_sdwa": "EPA SDWA — Drinking water quality must meet NPDWR standards at all times; 'process_upset' state must trigger immediate notification if MCL exceedance is possible",
            "awia_2018": "AWIA 2018 Section 2013 — Water systems serving 3,300+ persons must conduct risk and resilience assessment including cyber threats"
          },
          "use_case": "AI water process control agent monitors and adjusts chemical dosing continuously. OPA policy enforces that any transition to 'emergency_shutdown' requires HITL confirmation from a licensed water operator — chemical dosing shutdown on a live distribution system is irreversible in the short term.",
          "source": "AWWA Cybersecurity Guidance; EPA SDWA operational requirements; water utility SCADA operational state models",
          "source_url": "https://www.epa.gov/sdwa"
        },
        {
          "enum_name": "WaterQualityComplianceStatus",
          "label": "Water Quality Compliance Status",
          "otel_attribute": "energy.water.quality_compliance_status",
          "opa_policy_path": "data.energy.water.quality_compliance_status",
          "rego_input_key": "energy_water_quality_compliance_status",
          "stability": "stable",
          "description": "Drinking water or wastewater effluent regulatory compliance status as assessed by AI water quality monitoring agents. Violations require immediate regulatory notification.",
          "permitted_values": [
            "compliant",
            "monitoring_and_reporting_violation",
            "maximum_contaminant_level_violation",
            "treatment_technique_violation",
            "public_notification_required",
            "significant_deficiency_identified",
            "acute_health_risk_do_not_drink",
            "npdes_effluent_limit_exceeded"
          ],
          "value_labels": {
            "compliant": "Compliant",
            "monitoring_and_reporting_violation": "Monitoring and Reporting Violation",
            "maximum_contaminant_level_violation": "Maximum Contaminant Level Violation",
            "treatment_technique_violation": "Treatment Technique Violation",
            "public_notification_required": "Public Notification Required",
            "significant_deficiency_identified": "Significant Deficiency Identified",
            "acute_health_risk_do_not_drink": "Acute Health Risk Do not Drink",
            "npdes_effluent_limit_exceeded": "Npdes Effluent Limit Exceeded"
          },
          "regulatory_mappings": {
            "epa_sdwa_40_cfr_141": "40 CFR 141 — National Primary Drinking Water Regulations: MCL violations require public notification within 24 hours (acute) or 30 days (non-acute)",
            "epa_cwa_npdes": "CWA NPDES — Effluent limit violations require self-reporting in Discharge Monitoring Reports (DMR)"
          },
          "use_case": "AI water quality monitoring agent continuously tests against MCL thresholds. 'Acute_health_risk_do_not_drink' status triggers immediate automatic public notification workflow and HITL escalation — no AI agent may delay this notification.",
          "source": "EPA SDWA 40 CFR Part 141; EPA Clean Water Act NPDES regulations",
          "source_url": "https://www.epa.gov/sdwa"
        }
      ]
    }
  ],
  "opa_rego_policy_patterns": {
    "description": "Energy & Utilities-specific OPA Rego policy patterns referencing enum values from this file and from 00_core_sdk_and_governance.json. Illustrative patterns, not production policies.",
    "patterns": [
      {
        "pattern_id": "energy.block_autonomous_bes_switching_without_hitl",
        "pattern_name": "block_autonomous_bes_switching_without_hitl",
        "enforcement_effect": "require_hitl_approval",
        "description": "Block any AI grid management agent from autonomously executing a switching operation that changes the energisation state of a BES asset (circuit breaker open/close) without HITL authorisation from a licensed system operator. De-energising or re-energising BES assets has immediate reliability consequences and is a NERC CIP-010 change event.",
        "applicable_enums": [
          "SwitchingEquipmentState",
          "GridAssetOperationalStatus",
          "BESCyberSystemImpactLevel",
          "NERCCIPStandard"
        ],
        "regulatory_basis": "NERC CIP-010-4 — Configuration Change Management: changes to BES Cyber Systems require documented authorisation; NERC FAC-001/002 — Facility reliability requirements; NERC EOP-004 — Event reporting for switching errors causing disturbances",
        "rego_sketch": "package energy.grid_operations\n\nstate_change_requires_hitl := {\n  \"closed\", \"open\", \"grounded\", \"locked_open\", \"locked_closed\"\n}\n\nbes_impact_requires_hitl := {\"high_impact\", \"medium_impact\"}\n\ndeny[msg] {\n  input.target_switching_state in state_change_requires_hitl\n  input.energy_nerc_cip_bcs_impact_level in bes_impact_requires_hitl\n  not input.system_operator_hitl_authorised == true\n  msg := sprintf(\"NERC CIP-010: Autonomous switching of BES asset '%v' to state '%v' requires system operator HITL authorisation. Impact level: '%v'.\", [input.asset_id, input.target_switching_state, input.energy_nerc_cip_bcs_impact_level])\n}\n\ndeny[msg] {\n  input.energy_switching_state == \"grounded\"\n  input.target_switching_state == \"closed\"\n  not input.crew_clearance_confirmed == true\n  msg := sprintf(\"Safety: Asset '%v' is grounded (crew clearance in effect). Re-energisation blocked until crew clearance is confirmed released by safety system.\", [input.asset_id])\n}"
      },
      {
        "pattern_id": "energy.enforce_nerc_cip_evidence_generation_for_bcs_actions",
        "pattern_name": "enforce_nerc_cip_evidence_generation_for_bcs_actions",
        "enforcement_effect": "deny",
        "description": "Require that every AI agent action on a BES Cyber System automatically generates a tagged compliance evidence record linking the action to the applicable NERC CIP standard and requirement ID. Enables automated audit evidence package assembly for NERC Regional Entity compliance audits.",
        "applicable_enums": [
          "NERCCIPStandard",
          "BESCyberSystemImpactLevel",
          "CIPComplianceEvidenceType"
        ],
        "regulatory_basis": "NERC CIP-007-6 R4 — Log management: access logs must be reviewed within 35 days for high/medium impact BCS; NERC CIP-010-4 R1 — Baseline configuration documentation; NERC CIP-013-2 R2 — Supply chain risk assessment documentation",
        "rego_sketch": "package energy.nerc_compliance\n\nauditable_actions := {\n  \"configuration_change\", \"patch_deployment\", \"access_grant\",\n  \"access_revoke\", \"remote_access_session\", \"log_review\",\n  \"vulnerability_scan\", \"vendor_access_granted\"\n}\n\ndenied_without_evidence := {\"high_impact\", \"medium_impact\"}\n\ndeny[msg] {\n  input.action_type in auditable_actions\n  input.energy_nerc_cip_bcs_impact_level in denied_without_evidence\n  not input.cip_evidence_record_generated == true\n  msg := sprintf(\"NERC CIP: Action '%v' on '%v' BCS asset '%v' must generate a CIP compliance evidence record before execution is confirmed. Standard: '%v'.\", [input.action_type, input.energy_nerc_cip_bcs_impact_level, input.asset_id, input.energy_nerc_cip_standard])\n}"
      },
      {
        "pattern_id": "energy.enforce_eu_ets_allowance_surrender_gate",
        "pattern_name": "enforce_eu_ets_allowance_surrender_gate",
        "enforcement_effect": "deny",
        "description": "Block an AI allowance management agent from marking an EU ETS installation as compliant or from performing a final surrender without a verified emissions report from an accredited verifier. Protects against premature or erroneous surrender that could trigger regulatory penalties.",
        "applicable_enums": [
          "EUETSComplianceStatus",
          "CEMSDataQualityFlag",
          "GHGEmissionScope"
        ],
        "regulatory_basis": "EU ETS Directive 2003/87/EC Article 14 — Verified monitoring and reporting required; Article 12(3a) — Surrender of allowances equal to verified emissions by April 30; EU MRR 2018/2066 — Accredited verifier sign-off required",
        "rego_sketch": "package energy.eu_ets\n\ndeny[msg] {\n  input.energy_eu_ets_compliance_status == \"surrendered_pending_verification\"\n  not input.accredited_verifier_report_accepted == true\n  msg := \"EU ETS Art 14: Final allowance surrender cannot be confirmed without an accepted verified emissions report from an accredited verifier. Status must remain 'surrendered_pending_verification' until verification is complete.\"\n}\n\ndeny[msg] {\n  input.energy_eu_ets_compliance_status == \"non_compliant_shortfall_confirmed\"\n  not input.executive_hitl_notified == true\n  msg := \"EU ETS Art 16: Non-compliance confirmed — 100 EUR/tonne excess emissions penalty applies. Executive HITL notification required immediately. AI agent cannot auto-resolve non-compliance status.\"\n}\n\ndeny[msg] {\n  input.energy_cems_data_quality_flag != \"quality_assured\"\n  input.emission_data_used_for_surrender == true\n  msg := sprintf(\"EU ETS MRR: CEMS data with quality flag '%v' cannot be used for allowance surrender calculation without competent authority approval of substitute data methodology.\", [input.energy_cems_data_quality_flag])\n}"
      },
      {
        "pattern_id": "energy.block_vpp_dispatch_above_registered_capacity",
        "pattern_name": "block_vpp_dispatch_above_registered_capacity",
        "enforcement_effect": "deny",
        "description": "Block an AI VPP dispatch agent from submitting market bids or dispatching resources above the aggregation's FERC Order 2222-registered capacity. Over-dispatch creates market settlement exposure and potential FERC market behaviour rule violations.",
        "applicable_enums": [
          "VPPDispatchState",
          "DRResourceCurtailmentType",
          "EnergyMarketProductType",
          "MarketBidOfferStatus"
        ],
        "regulatory_basis": "FERC Order 2222 — DER aggregations must comply with RTO/ISO tariff participation requirements; FERC Market Behaviour Rule 2 — Accurate resource performance reporting; FERC Order 841 — Storage participation tariff capacity limits",
        "rego_sketch": "package energy.market_operations\n\ndeny[msg] {\n  input.energy_vpp_dispatch_state in {\"dispatched_discharging\", \"dispatched_exporting\", \"emergency_dispatch\"}\n  input.dispatch_mw > input.registered_capacity_mw\n  msg := sprintf(\"FERC Order 2222: VPP dispatch target %v MW exceeds registered DER aggregation capacity of %v MW. Over-dispatch blocked — FERC market behaviour rule compliance requires dispatch within registered capacity.\", [input.dispatch_mw, input.registered_capacity_mw])\n}\n\ndeny[msg] {\n  input.energy_market_bid_offer_status == \"disputed\"\n  not input.human_trader_hitl_reviewing == true\n  msg := \"FERC: Disputed market settlement requires human trader review. AI agent cannot autonomously resolve settlement disputes.\"\n}"
      },
      {
        "pattern_id": "energy.water_quality_acute_violation_notification_gate",
        "pattern_name": "water_quality_acute_violation_notification_gate",
        "enforcement_effect": "deny",
        "description": "Block any AI water operations agent from performing any action that could delay public notification when an acute drinking water MCL violation is detected. EPA SDWA requires public notification within 24 hours of an acute violation — no AI optimisation or routing decision may delay this.",
        "applicable_enums": [
          "WaterQualityComplianceStatus",
          "WaterTreatmentProcessState"
        ],
        "regulatory_basis": "EPA SDWA 40 CFR 141.202 — Acute MCL violations require public notification as soon as practicable but no later than 24 hours; EPA 40 CFR 141.85 — Tier 1 notification content requirements",
        "rego_sketch": "package energy.water_operations\n\nacute_violation_statuses := {\n  \"acute_health_risk_do_not_drink\",\n  \"maximum_contaminant_level_violation\",\n  \"public_notification_required\"\n}\n\ndeny[msg] {\n  input.energy_water_quality_compliance_status in acute_violation_statuses\n  not input.public_notification_initiated == true\n  input.minutes_since_violation_detected > 30\n  msg := sprintf(\"EPA SDWA 141.202: Acute water quality violation '%v' detected %v minutes ago. Public notification must be initiated within 24 hours. HITL escalation to utility director and health department required immediately.\", [input.energy_water_quality_compliance_status, input.minutes_since_violation_detected])\n}\n\ndeny[msg] {\n  input.energy_water_treatment_process_state == \"cyber_incident_isolated\"\n  not input.licensed_operator_hitl_confirmed == true\n  msg := \"AWIA 2018 / AWWA: Water treatment process isolated due to cyber incident. All automated control actions blocked — licensed water operator must assume manual control and confirm system status.\"\n}"
      }
    ]
  },
  "agent_registry_fields": {
    "description": "Recommended fields for registering an energy or utilities domain agentic AI system in the GRC portal. Supplements the core agent identity schema from 00_core_sdk_and_governance.json.",
    "fields": [
      {
        "field": "bes_cyber_system_impact_level",
        "type": "enum",
        "enum_ref": "BESCyberSystemImpactLevel",
        "description": "NERC CIP-002-5.1a impact level of the BES Cyber Systems this agent is authorised to interact with. Determines the full set of NERC CIP requirements applicable to the agent's operations. Agents interacting with high or medium impact BCS must be registered in the NERC CIP asset inventory.",
        "required_when": "All AI agents operating on or connected to BES Cyber Systems at NERC-registered entities"
      },
      {
        "field": "nerc_registered_entity_id",
        "type": "string",
        "description": "NERC-assigned Registered Entity identifier (e.g. DUNS number or NERC ID) for the responsible entity under whose NERC CIP compliance programme this agent operates.",
        "required_when": "All AI agents deployed at NERC-registered entities (Transmission Owners, Generator Owners, Balancing Authorities, etc.)"
      },
      {
        "field": "ferc_order_2222_market_participant",
        "type": "boolean",
        "description": "True if this AI agent participates in wholesale energy markets as a DER aggregation under FERC Order 2222. Triggers FERC market behaviour rule compliance obligations and ISO/RTO tariff registration requirements.",
        "required_when": "AI VPP dispatch and DER aggregation agents submitting bids to organised wholesale markets"
      },
      {
        "field": "eu_ets_installation_id",
        "type": "string",
        "description": "EU ETS installation identifier from the EU Allowance Registry. Required for AI agents managing emissions monitoring, CEMS data, or allowance surrender for EU ETS-regulated installations.",
        "required_when": "AI agents managing EU ETS compliance for covered installations"
      },
      {
        "field": "cems_epa_monitor_plan_id",
        "type": "string",
        "description": "EPA CAMPD monitoring plan identifier for the CEMS system this AI agent quality-manages. Links AI data quality actions to the EPA-approved monitoring plan.",
        "required_when": "AI CEMS data quality agents at EPA-regulated facilities"
      },
      {
        "field": "openadr_vtn_registered",
        "type": "boolean",
        "description": "True if this AI agent operates as an OpenADR 2.0b Virtual Top Node (VTN) and is registered with the OpenADR Alliance for certified interoperability.",
        "required_when": "AI demand response orchestration agents operating as OpenADR VTNs"
      },
      {
        "field": "phmsa_operator_id",
        "type": "string",
        "description": "PHMSA-assigned pipeline operator identifier. Required for AI agents performing pipeline integrity management functions under 49 CFR Part 192/195.",
        "required_when": "AI pipeline integrity management agents at PHMSA-regulated pipeline operators"
      },
      {
        "field": "sdwa_pwsid",
        "type": "string",
        "description": "EPA Safe Drinking Water Act Public Water System Identifier (PWSID). Required for AI agents controlling or monitoring water treatment processes at EPA SDWA-regulated public water systems.",
        "required_when": "AI water process control and quality monitoring agents at public water systems"
      }
    ]
  }
}