package com.livingworld.debug;

/**
 * Diagnostic categories for grouping logs and profiler entries.
 * <p>
 * Categories map directly to the mod's architectural modules so that logs
 * can be filtered by subsystem at runtime.
 */
public enum DiagnosticCategory {
    // ── Core systems ──────────────────────────────────────────
    BOOTSTRAP("Bootstrap"),
    CONFIG("Config"),
    REGIONS("Regions"),
    SIMULATION("Simulation"),
    PERSISTENCE("Persistence"),
    EVENTS("Events"),
    COMMANDS("Commands"),
    NETWORKING("Networking"),
    PLATFORM("Platform"),

    // ── Ecosystem sub-modules ─────────────────────────────────
    ECOSYSTEM("Ecosystem"),
    VEGETATION("Vegetation"),
    SOIL("Soil"),
    WATER("Water"),
    RESOURCES("Resources"),
    POLLUTION("Pollution"),
    RECOVERY("Recovery"),
    WORLD_EFFECTS("WorldEffects"),

    TESTING("Testing");

    private final String displayName;

    DiagnosticCategory(String displayName) {
        this.displayName = displayName;
    }

    /** Returns a human-readable name for the category. */
    public String displayName() {
        return displayName;
    }
}