{# A consist has a shared "consist address" (used for advanced /
CS-managed consists) plus a kind. Software consists work on every
driver via per-loco throttle fan-out; command_station consists
require driver support (LocoNet ships this today; NCE/DCC-EX
currently fall back to software).
Address is constrained to 1..127 short — CV19's 7-bit range —
across every kind so the address space is uniform. Long
addresses are not offered because they don't exist for consists. #}
Active consists
{# Refresh from CS: NCE-only. On other drivers the JSON service
returns 400 which the route surfaces as a friendly banner. #}
{% include "_consists_table.html" %}
{# Live push: the consist manager broadcasts {type: "consist", ...} on
every create/update/delete, so we refresh the table when any change
flows through the WebSocket. #}
{% endblock %}