{# aca-trn-06: the editor had no accessible name at all. The label is real rather
than an aria-label so it is visible to everyone, not only to screen readers. #}
{# Run is advisory: it grades read-only and never records an attempt or pays XP.
This button appears only after a passing Run and is the one thing that
submits for credit (the server re-grades the submission itself). #}
{# The cost is quoted by the server (see getHint) rather than hardcoded here:
this button used to advertise only the flat penalty, while a first hint
really costs 48 XP on a 50 XP step because it also forfeits the no-hints
multiplier (aca-ux-02). #}
{# aca-hyg-04: honour hint_allowed. It was written for all 212 steps as 1 and
then ignored here, so the column meant nothing. Default to allowed when the
key is absent, so older seeded rows keep working. #}
{% if step.hint_allowed is not defined or step.hint_allowed %}
{% endif %}