{
  "format": "lemonergy/charging-catalog@1",
  "engineSha256": "9b68a0e34d8a4294d683838fc60adfdcfd405296013133d1943c1a70e77247a1",
  "models": [
    {
      "id": "charging-home",
      "studioExample": "charging-home",
      "title": "Home charging window",
      "description": "Editable home charging window scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-home.json",
      "modelSha256": "bc17b36f92634dc21d3ae919239f3205572e1d7cff7b18510435985c50043660",
      "primitiveBlocks": null
    },
    {
      "id": "charging-depot",
      "studioExample": "charging-depot",
      "title": "Shared depot power",
      "description": "Editable shared depot power scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-depot.json",
      "modelSha256": "c2649e88b6d1095a42589f4cc9adb9c0647614b025303f1a81e38ec261a2ccd9",
      "primitiveBlocks": null
    },
    {
      "id": "charging-opportunity",
      "studioExample": "charging-opportunity",
      "title": "Opportunity charging stops",
      "description": "Editable opportunity charging stops scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-opportunity.json",
      "modelSha256": "ea3cd431ddcdc5ed132c04f71ced2fb6ca7bb49de8c8a1cd71f76609299189f6",
      "primitiveBlocks": null
    },
    {
      "id": "charging-trickle",
      "studioExample": "charging-trickle",
      "title": "Bounded low-current charging",
      "description": "Editable bounded low-current charging scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-trickle.json",
      "modelSha256": "8ac9d59904cadb8633b66f005553d96cac6d9f58d5070bf6e9e9c4595cf151df",
      "primitiveBlocks": null
    },
    {
      "id": "charging-maintenance",
      "studioExample": "charging-maintenance",
      "title": "Chemistry-aware maintenance",
      "description": "Editable chemistry-aware maintenance scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-maintenance.json",
      "modelSha256": "d4c03c8dd587ad71ade17969a795800c57a16bda848d90eed5228aeefe4d2b04",
      "primitiveBlocks": null
    },
    {
      "id": "charging-v2g",
      "studioExample": "charging-v2g",
      "title": "Vehicle to grid",
      "description": "Editable vehicle to grid scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-v2g.json",
      "modelSha256": "ec4411a656420e6852553d07e795848983593364e940534335316d62097c2807",
      "primitiveBlocks": null
    },
    {
      "id": "charging-v2v",
      "studioExample": "charging-v2v",
      "title": "Vehicle to vehicle",
      "description": "Editable vehicle to vehicle scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-v2v.json",
      "modelSha256": "afed04b2b7fe8760e90a73a0ab8cf3bd6e785b5af593310554bd206faa6cb67e",
      "primitiveBlocks": null
    },
    {
      "id": "charging-v2h",
      "studioExample": "charging-v2h",
      "title": "Vehicle to home",
      "description": "Editable vehicle to home scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-v2h.json",
      "modelSha256": "1cae9ade0d7ea71d56f785e17c733cf3e28ecbec876f70b6a299f49daf2d5e95",
      "primitiveBlocks": null
    },
    {
      "id": "charging-v2l",
      "studioExample": "charging-v2l",
      "title": "Vehicle to load",
      "description": "Editable vehicle to load scenario. Parameters are authored assumptions; inspect the model and its operating limits before comparing results.",
      "model": "./models/charging-v2l.json",
      "modelSha256": "2e10aa1da4ecac429462ba45d1eeb88bef2f1464423ccfe4acc7eced91da15eb",
      "primitiveBlocks": null
    }
  ],
  "coverage": [
    {
      "id": "CH01",
      "title": "Connected charger and battery regulation",
      "description": "SOC-dependent battery voltage and conserving CC/CV charging with finite power/current limits, precharge, taper termination and explicit temperature/BMS inhibition.",
      "evidence": [
        "js/charging-control.js",
        "rust-core/src/charging_control.rs",
        "tests/charging-physical.test.mjs",
        "docs/CHARGING_BLOCKS_SPEC.md"
      ]
    },
    {
      "id": "CH02",
      "title": "Reusable charging policies",
      "description": "Editable home, depot, opportunity, low-current and maintenance scenarios with connection windows, SOC targets, departure shortfall and chemistry-aware behavior.",
      "evidence": [
        "js/charging-scenarios.js",
        "tests/charging-physical.test.mjs",
        "tests/charging-scenarios.test.mjs"
      ]
    },
    {
      "id": "CH03",
      "title": "Shared site capacity",
      "description": "Finite simultaneous power allocation across multiple requests, with inspectable proportional sharing or input-order priority and an explicit site ceiling.",
      "evidence": [
        "js/charging-control.js",
        "tests/charging-physical.test.mjs",
        "tests/charging-scenarios.test.mjs"
      ]
    },
    {
      "id": "CH04",
      "title": "Bidirectional energy exchange",
      "description": "Scheduled import/export and load-following policies for V2G, V2H and V2L, plus an energy-coupled V2V converter with both batteries, reserve limits and conversion losses.",
      "evidence": [
        "js/charging-control.js",
        "rust-core/src/charging_control.rs",
        "tests/charging-physical.test.mjs",
        "docs/CHARGING_BLOCKS_SPEC.md"
      ]
    },
    {
      "id": "CH05",
      "title": "Editable use cases and comparable results",
      "description": "Main Studio presets retain connected component parameters and exportable models. Policy comparisons preserve hardware, initial conditions and physical availability while reporting energy, cost, peak power and departure shortfall.",
      "evidence": [
        "js/charging-scenarios.js",
        "js/studio-charging-ui.js",
        "js/studio-physical-ui.js",
        "tests/charging-scenarios.test.mjs",
        "tests/e2e/charging-scenarios.spec.mjs"
      ]
    }
  ]
}
