const jsonCache = new Map();

export function loadJson(path) {
    if (jsonCache.has(path)) {
        return jsonCache.get(path);
    }

    const jsonPromise = fetch(path).then(response => response.json());
    jsonCache.set(path, jsonPromise);
    return jsonPromise;
}

export function loadAntData() {
    return loadJson('data/ants.json');
}

export function loadAntById(antId) {
    return loadAntData().then(data => data[antId] || null);
}

export function loadAntsByColor(color) {
    return loadAntData().then(data => {
        return Object.values(data).filter(ant => ant.color === color);
    });
}

export function loadTutorialData() {
    return loadJson('data/tutorial.json');
}