#ifndef FESA_RESULTS_RESULTS_WRITER_H_ #define FESA_RESULTS_RESULTS_WRITER_H_ #include #include #include "fesa/analysis/analysis_state.h" #include "fesa/core/diagnostic.h" #include "fesa/core/status.h" #include "fesa/model/domain.h" namespace fesa { /// @brief Isolates authoritative result storage from the solver core. class ResultsWriter { public: virtual ~ResultsWriter() = default; /// @brief Writes one complete validated analysis state. /// @return Success only after backend-specific finalization completes. virtual Status Write(const std::filesystem::path& output_path, const Domain& domain, const AnalysisState& state, const std::vector& diagnostics) = 0; }; } // namespace fesa #endif // FESA_RESULTS_RESULTS_WRITER_H_