{
  "version": "1.0.0",
  "project": "IchiGridEA",
  
  "paths": {
    "include": "Include/",
    "files": "Files/IchiGridEA/",
    "presets": "Files/Presets/",
    "pipeline": "pipeline/"
  },
  
  "naming": {
    "module_file": "{PascalCase}.mqh",
    "class_name": "C{PascalCase}",
    "init_function": "Init{PascalCase}",
    "deinit_function": "Deinit{PascalCase}",
    "global_variable": "g_{PascalCase}",
    "pointer_variable": "g_p{PascalCase}",
    "input_variable": "InpEnable{PascalCase}",
    "config_struct": "S{PascalCase}Config"
  },
  
  "sections": {
    "pattern": "S{XXX}",
    "filter_pattern": "F{XX}",
    "range_pattern": "S{XX}-S{XX}"
  },
  
  "transliteration": {
    "forbidden_chars": ["*", "?", "\"", "<", ">", "|", "/", "\\", ":"],
    "replacement": "_",
    "max_path_length": 200
  },
  
  "casing": {
    "files": "PascalCase",
    "classes": "CPascalCase",
    "functions": "PascalCase",
    "variables": "camelCase",
    "constants": "UPPER_SNAKE_CASE",
    "inputs": "InpPascalCase"
  },
  
  "conflict_policy": "fail",
  
  "header_template": {
    "required_tags": [
      "@project",
      "@section",
      "@generated",
      "@session",
      "@model",
      "@spec_hash",
      "@code_hash",
      "@spec_source"
    ]
  },
  
  "delimiters": {
    "gen_header_start": "// <gen:header>",
    "gen_header_end": "// </gen:header>",
    "dev_block_start": "// <dev:begin>",
    "dev_block_end": "// </dev:begin>"
  }
}
