{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://cityresourcegraph.com/schemas/match_packet.json", "title": "Match Packet Entity", "description": "Partner-ready deliverables for executing industrial symbiosis matches", "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique match packet identifier" }, "match_id": { "type": "string", "format": "uuid", "description": "Associated match ID" }, "title": { "type": "string", "maxLength": 200, "description": "Human-readable match title" }, "technical_details": { "type": "object", "properties": { "supply_temp_celsius": {"type": "number"}, "demand_temp_range": { "type": "object", "properties": { "min_celsius": {"type": "number"}, "max_celsius": {"type": "number"} } }, "distance_meters": {"type": "number"}, "estimated_savings_per_year": {"type": "number"}, "resource_type": {"type": "string"}, "quantity": {"type": "number"}, "unit": {"type": "string"} }, "description": "Technical specifications of the match" }, "contact_info": { "type": "object", "properties": { "business_type": {"type": "string", "maxLength": 100}, "location_area": {"type": "string", "maxLength": 200}, "contact_method": {"type": "string", "enum": ["platform_mediated", "direct"]}, "anonymized": {"type": "boolean", "default": true} }, "description": "Partner contact information (anonymized initially)" }, "legal_templates": { "type": "array", "items": { "type": "object", "properties": { "type": {"type": "string", "enum": ["mou", "supply_agreement", "service_contract", "nda"]}, "name": {"type": "string", "maxLength": 100}, "template_url": {"type": "string", "format": "uri"}, "description": {"type": "string", "maxLength": 500} }, "required": ["type", "template_url"] }, "description": "Available legal templates for this match type" }, "cost_calculators": { "type": "object", "properties": { "pipe_cost_per_meter": {"type": "number", "description": "€/m for buried pre-insulated pipe"}, "hx_cost_per_kw": {"type": "number", "description": "€/kW for plate heat exchanger"}, "payback_months": {"type": "number"}, "installation_cost_estimate": {"type": "number"}, "maintenance_cost_per_year": {"type": "number"} }, "description": "Built-in cost calculation tools" }, "implementation_steps": { "type": "array", "items": { "type": "object", "properties": { "step_number": {"type": "integer"}, "title": {"type": "string", "maxLength": 100}, "description": {"type": "string", "maxLength": 500}, "estimated_duration_days": {"type": "integer"}, "required_expertise": {"type": "string", "maxLength": 200}, "estimated_cost": {"type": "number"} }, "required": ["step_number", "title", "description"] }, "description": "Step-by-step implementation guide" }, "facilitator_recommendations": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Recommended facilitator IDs for this match" }, "risk_warnings": { "type": "array", "items": { "type": "string", "maxLength": 500 }, "description": "Important risk warnings and considerations" }, "expires_at": { "type": "string", "format": "date-time", "description": "When this packet expires" }, "version": { "type": "integer", "minimum": 1, "default": 1, "description": "Packet version number" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } }, "required": ["id", "match_id", "title", "technical_details"], "additionalProperties": false }