# The entity ids this add-on ANNOUNCES at the shipped roster of one.
#
# ⚠️ THIS FILE IS EXTERNAL DATA AND THAT IS ITS ENTIRE PURPOSE. The before/after
# entity diff inside `rehearse_roster.py` cannot see a change to the id
# COMPOSITION, because both sides of that diff are composed by the same build:
# rename the MQTT device and every id moves on both sides equally, and the diff
# reports "nothing orphaned" about a change that orphans everything. That is
# `MUTATION.md` habit 4 - a check whose data cannot reach the failure it names -
# and a list that does NOT move with the code is the only thing that closes it.
#
# PROVENANCE, stated exactly:
#   - recorded 2026-09-08 by running this tool against `release/1.0` at
#     `meter_source: firmware`, roster of one. It is what the code announces.
#   - `sensor.goodwe_p1_sample_age` is additionally recorded in `app/mqtt.py` as
#     VERIFIED AGAINST THE LIVE SYSTEM on 2026-08-26, and the ESP32's ingest
#     guard subscribes to that exact string.
#   - ⚠️ IT IS NOT A DUMP OF THE LIVE INSTALL'S ENTITY REGISTRY. Live HA carries
#     roughly 49 `goodwe*` entities (card ARCH-02, read 2026-09-06); the other
#     ~41 belong to the ESPHome firmware, to template sensors and to helpers,
#     and this add-on announces none of them. THE OWNER STEP in DOCS.md replaces
#     this file with the real export, and the tool then separates the ids it
#     owns from the ids it does not rather than claiming orphans it cannot
#     cause.
#
# Editing this file is how you say "the ids changed on purpose". Do not edit it
# to make a check pass.
sensor.goodwe_battery_power
sensor.goodwe_battery_soc
sensor.goodwe_circulating_power
sensor.goodwe_controller_status
sensor.goodwe_grid_power
sensor.goodwe_maintenance_phase
sensor.goodwe_p1_sample_age
sensor.goodwe_setpoint
