{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "bps/community-energy", "title": "Community-Scale Energy Schema", "description": "District energy system parameters for community scale. Covers plants, networks, pipes, and building connections.", "$defs": { "_IdentifiedObject": { "type": "object", "properties": { "identifier": { "type": "string", "pattern": "^[.A-Za-z0-9_-]+$", "minLength": 1, "maxLength": 100 }, "display_name": { "type": [ "string", "null" ] }, "user_data": { "type": [ "object", "null" ] } }, "required": [ "identifier" ] }, "PlantType": { "type": "string", "enum": [ "CHP", "GasBoiler", "ElectricBoiler", "GroundSourceHeatPump", "AirSourceHeatPump", "Chiller", "CoolingTower", "ThermalStorage", "SolarThermal", "PV" ] }, "NetworkType": { "type": "string", "enum": [ "CHW", "HW", "Steam", "Electricity" ] }, "Plant": { "type": "object", "allOf": [ { "$ref": "#/$defs/_IdentifiedObject" }, { "type": "object", "properties": { "type": { "const": "Plant" }, "plant_type": { "$ref": "#/$defs/PlantType" }, "rated_capacity": { "type": "number", "exclusiveMinimum": 0, "description": "kW" }, "cop": { "type": "number", "exclusiveMinimum": 0 }, "fuel_type": { "type": "string", "default": "natural_gas" }, "location": { "type": "array", "items": { "type": "number" }, "minItems": 3, "maxItems": 3 } }, "required": [ "type", "plant_type", "rated_capacity" ], "additionalProperties": false } ] }, "Pipe": { "type": "object", "allOf": [ { "$ref": "#/$defs/_IdentifiedObject" }, { "type": "object", "properties": { "type": { "const": "Pipe" }, "start_node": { "type": "string" }, "end_node": { "type": "string" }, "length": { "type": "number", "exclusiveMinimum": 0, "description": "m" }, "diameter": { "type": "number", "exclusiveMinimum": 0, "description": "m" }, "insulation_thickness": { "type": "number", "minimum": 0, "default": 0 }, "insulation_conductivity": { "type": "number", "exclusiveMinimum": 0, "default": 0.04 } }, "required": [ "type", "start_node", "end_node", "length", "diameter" ], "additionalProperties": false } ] }, "Network": { "type": "object", "allOf": [ { "$ref": "#/$defs/_IdentifiedObject" }, { "type": "object", "properties": { "type": { "const": "Network" }, "network_type": { "$ref": "#/$defs/NetworkType" }, "supply_temperature": { "type": "number", "description": "Celsius" }, "return_temperature": { "type": "number", "description": "Celsius" }, "pipes": { "type": "array", "items": { "$ref": "#/$defs/Pipe" } } }, "required": [ "type", "network_type", "pipes" ], "additionalProperties": false } ] }, "BuildingConnection": { "type": "object", "allOf": [ { "$ref": "#/$defs/_IdentifiedObject" }, { "type": "object", "properties": { "type": { "const": "BuildingConnection" }, "building_ref": { "type": "string" }, "network_ref": { "type": "string" }, "design_flow_rate": { "type": "number", "exclusiveMinimum": 0 } }, "required": [ "type", "building_ref", "network_ref" ], "additionalProperties": false } ] }, "DistrictEnergy": { "type": "object", "allOf": [ { "$ref": "#/$defs/_IdentifiedObject" }, { "type": "object", "properties": { "type": { "const": "DistrictEnergy" }, "plants": { "type": "array", "items": { "$ref": "#/$defs/Plant" } }, "networks": { "type": "array", "items": { "$ref": "#/$defs/Network" } }, "connections": { "type": "array", "items": { "$ref": "#/$defs/BuildingConnection" } } }, "required": [ "type" ], "additionalProperties": false } ] } } }