Moodle as Code: Schema‑Driven Configuration for Core and Plugins