📦 Folder Structure for Coal‑Specific Schemas

RFC-052 RSADI Coal Industry Extension to RSADI Core

docs/
 └── schemas/
      ├── rtt-core/
      │     └── ... (existing core schemas)
      ├── rsadi-gd/
      │     └── ... (game dev schemas)
      └── rtt-coal/
            ├── CoalZoneExtension.schema.json
            ├── CoalFieldSampleExtension.schema.json
            ├── CoalNodeDescriptorExtension.schema.json
            ├── CoalAlertExtension.schema.json
            └── CoalEvacRouteExtension.schema.json

This mirrors your existing structure and keeps domain variants cleanly separated.


🪨 1. CoalZoneExtension.schema.json#

(Adds geology + mining‑specific metadata to a zone)#

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://triadicframeworks.org/schemas/rtt-coal/v1/CoalZoneExtension.schema.json",
  "title": "CoalZoneExtension",
  "type": "object",
  "properties": {
    "roof_strata_type": {
      "type": "string",
      "description": "Primary geological layer above the working section (e.g., shale, sandstone)."
    },
    "floor_strata_type": {
      "type": "string",
      "description": "Primary geological layer below the working section."
    },
    "pillar_load_kpa": {
      "type": "number",
      "description": "Estimated load on coal pillars in kilopascals."
    },
    "seam_height_m": {
      "type": "number",
      "description": "Coal seam height in meters."
    },
    "ventilation_rating": {
      "type": "string",
      "enum": ["good", "restricted", "poor"],
      "description": "Ventilation quality for the zone."
    },
    "equipment_present": {
      "type": "array",
      "items": { "type": "string" },
      "description": "List of equipment operating in this zone."
    }
  }
}

🪫 2. CoalFieldSampleExtension.schema.json#

(Adds coal‑specific sensor data to a field sample)#

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://triadicframeworks.org/schemas/rtt-coal/v1/CoalFieldSampleExtension.schema.json",
  "title": "CoalFieldSampleExtension",
  "type": "object",
  "properties": {
    "methane_ppm": {
      "type": "number",
      "description": "Methane concentration in parts per million."
    },
    "co_ppm": {
      "type": "number",
      "description": "Carbon monoxide concentration in parts per million."
    },
    "dust_density_mg_m3": {
      "type": "number",
      "description": "Airborne coal dust density."
    },
    "roof_convergence_mm": {
      "type": "number",
      "description": "Roof movement measured in millimeters."
    },
    "equipment_vibration_signature": {
      "type": "object",
      "properties": {
        "equipment_id": { "type": "string" },
        "dominant_freq_hz": { "type": "number" },
        "amplitude": { "type": "number" }
      }
    }
  }
}

🧱 3. CoalNodeDescriptorExtension.schema.json#

(Adds coal‑specific metadata to node descriptors)#

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://triadicframeworks.org/schemas/rtt-coal/v1/CoalNodeDescriptorExtension.schema.json",
  "title": "CoalNodeDescriptorExtension",
  "type": "object",
  "properties": {
    "node_role": {
      "type": "string",
      "enum": ["wall-mounted", "wearable", "equipment-mounted", "refuge-chamber"],
      "description": "Role of the node in the coal mine environment."
    },
    "intrinsic_safety_rating": {
      "type": "string",
      "description": "Certification level for explosive atmospheres (e.g., MSHA IS)."
    },
    "mount_location": {
      "type": "string",
      "description": "Physical mounting location (rib, roof bolt, equipment frame)."
    }
  }
}

🚨 4. CoalAlertExtension.schema.json#

(Adds coal‑specific alert metadata)#

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://triadicframeworks.org/schemas/rtt-coal/v1/CoalAlertExtension.schema.json",
  "title": "CoalAlertExtension",
  "type": "object",
  "properties": {
    "collapse_vector": {
      "type": "object",
      "properties": {
        "dx": { "type": "number" },
        "dy": { "type": "number" },
        "dz": { "type": "number" }
      },
      "description": "Predicted direction of structural failure."
    },
    "ignition_risk": {
      "type": "string",
      "enum": ["low", "medium", "high", "critical"],
      "description": "Risk of methane or coal dust ignition."
    },
    "belt_fire_risk": {
      "type": "string",
      "enum": ["low", "medium", "high", "critical"],
      "description": "Risk of conveyor belt fire."
    }
  }
}

🧭 5. CoalEvacRouteExtension.schema.json#

(Adds coal‑specific evacuation metadata)#

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://triadicframeworks.org/schemas/rtt-coal/v1/CoalEvacRouteExtension.schema.json",
  "title": "CoalEvacRouteExtension",
  "type": "object",
  "properties": {
    "refuge_chambers": {
      "type": "array",
      "items": { "type": "string" },
      "description": "List of refuge chambers along the route."
    },
    "ventilation_paths": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Ventilation routes relevant to evacuation."
    },
    "hazard_zones": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Zones to avoid during evacuation."
    }
  }
}

🧩 Why these schemas matter#

These give you:

  • drop‑in extensions for the coal doc
  • consistent structure with RSADI‑Core
  • ready‑to‑validate JSON
  • clean separation of domain logic
  • future‑proofing for other industries

And they save contributors from having to guess how to represent:

  • methane
  • dust
  • roof convergence
  • pillar load
  • collapse vectors
  • evacuation metadata

Everything is already typed, validated, and ready to use.


If you want, I can now scan the coal doc itself and generate:

  • a mapping table showing which doc sections map to which schema fields
  • a “recommended API usage” block for the coal doc
  • or .