turash/concept/schemas/match_packet.json
Damir Mukimov 4a2fda96cd
Initial commit: Repository setup with .gitignore, golangci-lint v2.6.0, and code quality checks
- Initialize git repository
- Add comprehensive .gitignore for Go projects
- Install golangci-lint v2.6.0 (latest v2) globally
- Configure .golangci.yml with appropriate linters and formatters
- Fix all formatting issues (gofmt)
- Fix all errcheck issues (unchecked errors)
- Adjust complexity threshold for validation functions
- All checks passing: build, test, vet, lint
2025-11-01 07:36:22 +01:00

132 lines
4.2 KiB
JSON

{
"$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
}