#ifndef FESA_IO_HDF5_HDF5_RESULTS_WRITER_H_ #define FESA_IO_HDF5_HDF5_RESULTS_WRITER_H_ #include "fesa/results/results_writer.h" namespace fesa { /// @brief Writes authoritative schema-v0 HDF5 results atomically. /// @note HDF5 and platform types remain private to the implementation. class Hdf5ResultsWriter final : public ResultsWriter { public: /// @brief Writes and self-checks a complete candidate before finalization. /// @param output_path Final authoritative path; the candidate is created in /// the same directory. /// @param domain Immutable source and model identity. /// @param state Fully recovered analysis state. /// @param diagnostics Deterministically ordered run diagnostics. /// @return Success only after atomic replacement or a structured output /// failure. /// @note A failed candidate does not replace an existing valid final file. Status Write(const std::filesystem::path& output_path, const Domain& domain, const AnalysisState& state, const std::vector& diagnostics) override; }; } // namespace fesa #endif // FESA_IO_HDF5_HDF5_RESULTS_WRITER_H_