#pragma once
#include "config.h"

class mirage_style : public config_t {
public:
	static auto& get() {
		static mirage_style instance;
		return instance;
	}

	[[nodiscard]] auto name() const {
		return tbl["info"]["name"].value_or("unknown");
	}
	[[nodiscard]] auto version() const {
		return tbl["info"]["version"].value_or("unknown");
	}
	[[nodiscard]] auto author() const {
		return tbl["info"]["author"].value_or("unknown");
	}
	[[nodiscard]] auto description() const {
		return tbl["info"]["description"].value_or("unknown");
	}
	[[nodiscard]] auto license() const {
		return tbl["info"]["license"].value_or("unknown");
	}

	[[nodiscard]] auto get(const std::string& key) const {
		return tbl[key];
	}
private:
	mirage_style() = default;
};
