---
# yamllint configuration for Home Assistant YAML files
extends: default

rules:
  line-length:
    max: 200
    level: warning
  
  # Allow indentation to be flexible for Home Assistant configs
  indentation:
    spaces: consistent
    indent-sequences: whatever
    check-multi-line-strings: false
  
  # Allow comments at various positions
  comments:
    min-spaces-from-content: 1
    level: warning
  
  # Allow comment indentation flexibility
  comments-indentation: disable
  
  # Allow empty lines
  empty-lines:
    max: 2
    level: warning
  
  # Allow empty values (common in HA configs)
  empty-values:
    forbid-in-block-mappings: false
    forbid-in-flow-mappings: false
  
  # Allow duplicate keys in some cases (HA uses this for conditions)
  key-duplicates:
    forbid-duplicated-merge-keys: true
  
  # Relax truthy checks for on/off (common in HA)
  truthy:
    allowed-values: ['true', 'false', 'yes', 'no', 'on', 'off']
    check-keys: false
  
  # Allow both flow and block styles
  braces:
    min-spaces-inside: 0
    max-spaces-inside: 1
  
  brackets:
    min-spaces-inside: 0
    max-spaces-inside: 1
  
  # Allow Jinja2 templates (they use curly braces)
  quoted-strings:
    quote-type: any
    required: false
  
  # Disable document start requirement (HA doesn't use ---)
  document-start: disable
  
  # Allow trailing spaces (HA auto-formats may add them)
  trailing-spaces: disable
  
  # Allow new line at end of file to be missing
  new-line-at-end-of-file: disable
  
  # Relax new lines rules
  new-lines:
    type: unix

ignore: |
  .venv/
  venv/
  .git/
  __pycache__/
  *.pyc
