rules:
  # Bronze
  action-setup:
    status: done
    comment: |
      play_chime service is setup in async_setup
      ptz_move service is setup in async_setup_entry since it is a entity_service
  appropriate-polling: done
  brands: done
  common-modules: done
  config-flow-test-coverage: done
  config-flow: done
  dependency-transparency: done
  docs-actions: done
  docs-high-level-description: done
  docs-installation-instructions: done
  docs-removal-instructions: done
  entity-event-setup: done
  entity-unique-id: done
  has-entity-name: done
  runtime-data: done
  test-before-configure: done
  test-before-setup: done
  unique-config-entry: done
  # Silver
  action-exceptions: done
  config-entry-unloading: done
  docs-configuration-parameters: done
  docs-installation-parameters: done
  entity-unavailable: done
  integration-owner: done
  log-when-unavailable: done
  parallel-updates:
    status: done
    comment: |
      Coordinators are used and asyncio mutex locks ensure safe operation in the upstream lib
      Parallel_update=0 set on all platforms
  reauthentication-flow: done
  test-coverage: done
  # Gold
  devices: done
  diagnostics: done
  discovery-update-info: done
  discovery: done
  docs-data-update: done
  docs-examples: done
  docs-known-limitations: done
  docs-supported-devices: done
  docs-supported-functions: done
  docs-troubleshooting: done
  docs-use-cases: done
  dynamic-devices: done
  entity-category: done
  entity-device-class: done
  entity-disabled-by-default: done
  entity-translations: done
  exception-translations: done
  icon-translations: done
  reconfiguration-flow: done
  repair-issues: done
  stale-devices:
    status: done
    comment: |
      For standalone cameras this does not apply: the integration should be removed.
      For cameras connected to a NVR/Hub: the entities of a device are marked unavailable when power is unplugged. They can be removed using async_remove_config_entry_device.
      Chimes can be uncoupled from the doorbell and removed from HA using async_remove_config_entry_device
      Automatic removal lead to many user issues when a device was temporarily out of wifi range or disconnected from power, so not implemented anymore.
  # Platinum
  async-dependency: done
  inject-websession: done
  strict-typing: done
