// aes67_web: httpd, embedded index.html, config store (cJSON in NVS), core routes.
// Core component: must not depend on main/ (project code).
#pragma once
#include "cJSON.h"
#include "esp_err.h"
#include "esp_http_server.h"
// Adds fields to the /api/status object. Called on every GET /api/status.
typedef void (*status_cb_t)(cJSON *status);
// Registries: call before or after aes67_web_start(); routes registered early are added on start.
esp_err_t status_register(status_cb_t cb);
esp_err_t web_register_uri(const httpd_uri_t *uri);
// Start httpd on port 80 with the core routes (/, /api/status, /api/reboot).
esp_err_t aes67_web_start(void);
// Send a cJSON object as the response body (application/json).
esp_err_t web_send_json(httpd_req_t *req, const cJSON *json);