(/home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.cpp should add these lines:
#include <qassert.h>  // for Q_ASSERT
#include <utility>    // for swap

/home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.cpp should remove these lines:
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.cpp:
#include "covariancematrix.h"
#include <qassert.h>  // for Q_ASSERT
#include <utility>    // for swap
---


/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.h should add these lines:
#include <matio_pubconf_unix.h>          // for mat_uint32_t
#include <qassert.h>                     // for Q_ASSERT
#include <stddef.h>                      // for size_t
#include <stdint.h>                      // for uint64_t
#include <QString>                       // for QString
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.h:
#include <matio.h>                       // for matio_classes, mat_sparse_t
#include <matio_pubconf_unix.h>          // for mat_uint32_t
#include <qassert.h>                     // for Q_ASSERT
#include <stddef.h>                      // for size_t
#include <stdint.h>                      // for uint64_t
#include <QString>                       // for QString
#include "shared/loading/iparser.h"      // for IParser
#include "shared/loading/tabulardata.h"  // for TabularData
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.cpp should add these lines:
#include <QByteArray>                      // for QByteArray
class IGraphModel;

/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.cpp:
#include "matlabfileparser.h"
#include <QByteArray>                      // for QByteArray
#include <QUrl>                            // for QUrl
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
class IGraphModel;
---


/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.h should add these lines:
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserNodeData
class IGraphModel;  // lines 25-25
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.cpp should add these lines:
#include <qassert.h>                     // for Q_ASSERT
#include <QList>                         // for QList
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringList>                   // for QStringList
#include <QStringView>                   // for QStringView, operator!=
#include <QVariant>                      // for QVariant
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <algorithm>                     // for copy
#include <compare>                       // for operator<
#include <tuple>                         // for tie, operator<=>, tuple
#include <utility>                       // for pair
#include <vector>                        // for vector
#include "graph/elementid.h"             // for NodeId
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.cpp:
#include "biopaxfileparser.h"
#include <qassert.h>                     // for Q_ASSERT
#include <QFile>                         // for QFile
#include <QList>                         // for QList
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringList>                   // for QStringList
#include <QStringView>                   // for QStringView, operator!=
#include <QUrl>                          // for QUrl
#include <QVariant>                      // for QVariant
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <QXmlStreamReader>              // for QXmlStreamReader
#include <algorithm>                     // for copy
#include <compare>                       // for operator<
#include <map>                           // for map, operator==, _Rb_tree_it...
#include <stack>                         // for stack
#include <tuple>                         // for tie, operator<=>, tuple
#include <utility>                       // for pair
#include <vector>                        // for vector
#include "graph/elementid.h"             // for NodeId
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserNodeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
---


/home/runner/work/graphia/graphia/source/shared/loading/cxparser.h should add these lines:
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/cxparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/cxparser.h:
#include "json_helper.h"                      // for json
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
#include "shared/loading/jsonparser.h"        // for JsonParser
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/cxparser.cpp should add these lines:
#include <json_helper.h>                 // for json
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s
#include <algorithm>                     // for any_of
#include <json.hpp>                      // for basic_json, iter_impl, itera...
#include <string>                        // for string, operator<=>, basic_s...
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/cxparser.cpp should remove these lines:
- #include <type_traits>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/cxparser.cpp:
#include "cxparser.h"
#include <json_helper.h>                 // for json
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s
#include <algorithm>                     // for any_of
#include <json.hpp>                      // for basic_json, iter_impl, itera...
#include <map>                           // for map, operator==, allocator
#include <string>                        // for string, operator<=>, basic_s...
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/elementid.h"      // for NodeId, EdgeId
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserEdgeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/utils/container.h"      // for contains
---


/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.h should add these lines:
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
class IGraphModel;  // lines 25-25
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.cpp should add these lines:
#include <qassert.h>                     // for Q_ASSERT
#include <QMessageLogger>                // for qDebug
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringView>                   // for QStringView, operator==, ope...
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <algorithm>                     // for copy
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.cpp should remove these lines:
- #include "shared/graph/elementid_debug.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.cpp:
#include "graphmlparser.h"
#include <qassert.h>                     // for Q_ASSERT
#include <QDebug>                        // for QDebug
#include <QFile>                         // for QFile
#include <QMessageLogger>                // for qDebug
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringView>                   // for QStringView, operator==, ope...
#include <QUrl>                          // for QUrl
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <QXmlStreamReader>              // for QXmlStreamReader
#include <algorithm>                     // for copy
#include <map>                           // for map, operator==
#include <stack>                         // for stack
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserEdgeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/utils/container.h"      // for contains
---


/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.h should add these lines:
#include <stddef.h>                 // for size_t

/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.h:
#include <stddef.h>                 // for size_t
#include <QVariantMap>              // for QVariantMap
#include <limits>                   // for numeric_limits
#include "shared/graph/edgelist.h"  // for EdgeList
---

/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.cpp should add these lines:
#include <bits/std_abs.h>                       // for abs
#include <qtypes.h>                             // for qsizetype
#include <QMap>                                 // for QMap
#include <QVariant>                             // for QVariant
#include <QtCore>                               // for QTypeInfo<>::isReloca...
#include <utility>                              // for pair
#include <vector>                               // for vector
#include "graph/edgelist.h"                     // for EdgeListEdge, EdgeList
#include "graph/elementid.h"                    // for NodeId, ElementId

/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.cpp:
#include "graphsizeestimate.h"
#include <bits/std_abs.h>                       // for abs
#include <qtypes.h>                             // for qsizetype
#include <QMap>                                 // for QMap
#include <QVariant>                             // for QVariant
#include <QVector>                              // for QVector
#include <QtCore>                               // for QTypeInfo<>::isReloca...
#include <algorithm>                            // for min, reverse, sort
#include <cmath>                                // for ceil
#include <cstdlib>                              // for size_t, abs
#include <set>                                  // for set, operator==, _Rb_...
#include <utility>                              // for pair
#include <vector>                               // for vector
#include "graph/edgelist.h"                     // for EdgeListEdge, EdgeList
#include "graph/elementid.h"                    // for NodeId, ElementId
#include "shared/graph/elementid_containers.h"  // for NodeIdMap, NodeIdSet
#include "shared/graph/undirectededge.h"        // for UndirectedEdge
#include "shared/utils/utils.h"                 // for evenDivisionOf
---


/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.h should add these lines:
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsonparser.h:
#include "json_helper.h"             // for json
#include "shared/loading/iparser.h"  // for IParser
class IGraphModel;  // lines 25-25
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.cpp should add these lines:
#include <json_helper.h>                   // for parseJsonFrom
#include <qtypes.h>                        // for qint64, qsizetype
#include <QIODevice>                       // for QIODevice

/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsonparser.cpp:
#include "jsonparser.h"
#include <json_helper.h>                   // for parseJsonFrom
#include <qtypes.h>                        // for qint64, qsizetype
#include <QByteArray>                      // for QByteArray
#include <QDataStream>                     // for QDataStream
#include <QFile>                           // for QFile
#include <QIODevice>                       // for QIODevice
#include <QUrl>                            // for QUrl
#include <vector>                          // for vector
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
---


/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.h should add these lines:
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.cpp should add these lines:
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <stdint.h>
#include <QObject>
#include <QString>
#include <algorithm>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <vector>
#include "loading/iuserelementdata.h"

/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.cpp should remove these lines:
- #include <boost/boost_spirit_qstring_adapter.h>  // lines 24-24
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 22-22
- #include <boost/spirit/home/x3.hpp>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.cpp:
#include "gmlfileparser.h"
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <stdint.h>
#include <QFileInfo>
#include <QObject>
#include <QString>
#include <QTextDocumentFragment>
#include <QUrl>
#include <algorithm>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/iterators/istream_iterator.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <fstream>
#include <map>
#include <variant>
#include <vector>
#include "loading/iuserelementdata.h"
#include "progress_iterator.h"
#include "shared/graph/elementid.h"
#include "shared/graph/igraphmodel.h"
#include "shared/graph/imutablegraph.h"
#include "shared/utils/container.h"
namespace SpiritGmlParser { struct KeyValue; }  // lines 48-48
---


/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.h should add these lines:
class IGraphModel;
class IParser;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.h:
#include "json_helper.h"                      // for json
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
#include "shared/loading/jsonparser.h"        // for JsonParser
class IGraphModel;
class IParser;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.cpp should add these lines:
#include <json_helper.h>                 // for json
#include <stdint.h>                      // for uint64_t
#include <QObject>                       // for QObject
#include <QString>                       // for QString
#include <json.hpp>                      // for basic_json, iter_impl
#include <map>                           // for map, operator==
#include <string>                        // for string, operator<=>, stoi
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.cpp:
#include "jsongraphparser.h"
#include <json_helper.h>                 // for json
#include <stdint.h>                      // for uint64_t
#include <QObject>                       // for QObject
#include <QString>                       // for QString
#include <json.hpp>                      // for basic_json, iter_impl
#include <map>                           // for map, operator==
#include <string>                        // for string, operator<=>, stoi
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserEdgeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/utils/container.h"      // for contains
#include "shared/utils/string.h"         // for isNumeric
---


/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.h should add these lines:
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.cpp should add these lines:
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <QObject>
#include <QString>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/auxiliary/eol.hpp>
#include <boost/spirit/home/x3/char/any_char.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/difference.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <string>
#include <utility>
#include <vector>
#include "loading/iuserelementdata.h"

/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.cpp should remove these lines:
- #include <boost/boost_spirit_qstring_adapter.h>  // lines 6-6
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 4-4
- #include <boost/spirit/home/x3.hpp>  // lines 3-3
- #include <type_traits>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.cpp:
#include "dotfileparser.h"
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <QFileInfo>
#include <QObject>
#include <QString>
#include <QUrl>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/iterators/istream_iterator.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/auxiliary/eol.hpp>
#include <boost/spirit/home/x3/char/any_char.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/difference.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <fstream>
#include <functional>
#include <map>
#include <string>
#include <utility>
#include <variant>
#include <vector>
#include "loading/iuserelementdata.h"
#include "progress_iterator.h"
#include "shared/graph/elementid.h"
#include "shared/graph/igraphmodel.h"
#include "shared/graph/imutablegraph.h"
#include "shared/utils/container.h"
#include "shared/utils/visitor.h"
namespace SpiritDotParser { struct DotSubGraph; }  // lines 30-30
---


/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.h should add these lines:
#include <stddef.h>                      // for size_t
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.h should remove these lines:
- #include <QUrl>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.h:
#include <stddef.h>                      // for size_t
#include "shared/loading/iparser.h"      // for IParser
#include "shared/loading/tabulardata.h"  // for TabularData
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.cpp should add these lines:
#include <QByteArray>                      // for QByteArray
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QUrl>                            // for QUrl
#include "loading/iparser.h"               // for IParser
#include "loading/tabulardata.h"           // for TabularData
class IGraphModel;

/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.cpp:
#include "xlsxtabulardataparser.h"
#include <xlsxio/include/xlsxio_read.h>    // for xlsxio_read_struct, xlsxio...
#include <QByteArray>                      // for QByteArray
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QUrl>                            // for QUrl
#include "loading/iparser.h"               // for IParser
#include "loading/tabulardata.h"           // for TabularData
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
class IGraphModel;
---


/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.h should add these lines:
#include <stddef.h>                        // for size_t
#include <stdint.h>                        // for uint32_t
#include <utf8/checked.h>                  // for next, replace_invalid
#include <utf8/unchecked.h>                // for append
#include <algorithm>                       // for max, min
#include <compare>                         // for operator<, __synth3way_t
#include <iterator>                        // for back_inserter, back_insert...
class IGraphModel;

/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.h should remove these lines:
- #include <utf8.h>  // lines 29-29
- #include <iostream>  // lines 38-38
- #include "shared/graph/igraphmodel.h"  // lines 22-22
- #include "shared/graph/imutablegraph.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardata.h:
#include <stddef.h>                        // for size_t
#include <stdint.h>                        // for uint32_t
#include <utf8/checked.h>                  // for next, replace_invalid
#include <utf8/unchecked.h>                // for append
#include <QObject>                         // for QObject
#include <QRect>                           // for QRect
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QUrl>                            // for QUrl
#include <algorithm>                       // for max, min
#include <compare>                         // for operator<, __synth3way_t
#include <fstream>                         // for basic_ifstream, basic_ios
#include <iterator>                        // for back_inserter, back_insert...
#include <limits>                          // for numeric_limits
#include <string>                          // for basic_string, string
#include <vector>                          // for vector
#include "shared/loading/iparser.h"        // for IParser
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
#include "shared/utils/string.h"           // for getline
#include "shared/utils/typeidentity.h"     // for TypeIdentity
class IGraphModel;
class Progressable;  // lines 43-43
---

/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.cpp should add these lines:
#include <qassert.h>                    // for Q_ASSERT
#include <QList>                        // for QList
#include <map>                          // for map
#include <utility>                      // for move, pair
#include "utils/string.h"               // for isNumeric, getline
#include "utils/typeidentity.h"         // for TypeIdentity

/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardata.cpp:
#include "tabulardata.h"
#include <qassert.h>                    // for Q_ASSERT
#include <QList>                        // for QList
#include <algorithm>                    // for copy, set_intersection, max
#include <map>                          // for map
#include <set>                          // for set, operator==, _Rb_tree_ite...
#include <stack>                        // for stack
#include <utility>                      // for move, pair
#include "shared/utils/progressable.h"  // for Progressable
#include "utils/string.h"               // for isNumeric, getline
#include "utils/typeidentity.h"         // for TypeIdentity
#include "xlsxtabulardataparser.h"      // for XlsxTabularDataParser
---


/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.h should add these lines:
#include <qtmetamacros.h>       // for Q_INVOKABLE, Q_OBJECT
#include <QByteArray>           // for QByteArray
#include <QHashNode>            // for QHash
#include <QVariant>             // for QVariant
class TabularData;

/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.h should remove these lines:
- #include <QObject>  // lines 22-22
- #include "shared/loading/tabulardata.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.h:
#include <qtmetamacros.h>       // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractTableModel>  // for QAbstractTableModel
#include <QByteArray>           // for QByteArray
#include <QHashNode>            // for QHash
#include <QVariant>             // for QVariant
class TabularData;
---

/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.cpp should add these lines:
#include <stddef.h>               // for size_t
#include <QModelIndex>            // for QModelIndex
#include <QtCore>                 // for ItemDataRole, QHash, QTypeInfo<>::i...
#include "loading/tabulardata.h"  // for TabularData
#include "utils/typeidentity.h"   // for TypeIdentity

/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.cpp:
#include "tabulardatamodel.h"
#include <stddef.h>               // for size_t
#include <QModelIndex>            // for QModelIndex
#include <QtCore>                 // for ItemDataRole, QHash, QTypeInfo<>::i...
#include "loading/tabulardata.h"  // for TabularData
#include "utils/typeidentity.h"   // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/shared/loading/urltypes.h should add these lines:
#include <QList>        // for QList

/home/runner/work/graphia/graphia/source/shared/loading/urltypes.h should remove these lines:
- #include <utility>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/urltypes.h:
#include <QList>        // for QList
#include <QString>      // for QString
#include <QStringList>  // for QStringList
#include <map>          // for map
#include "iurltypes.h"  // for IUrlTypes
class QUrl;  // lines 30-30
---

/home/runner/work/graphia/graphia/source/shared/loading/urltypes.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <Qt>                        // for CaseSensitivity
#include <utility>                   // for pair

/home/runner/work/graphia/graphia/source/shared/loading/urltypes.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/urltypes.cpp:
#include "urltypes.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QFileInfo>                 // for QFileInfo
#include <QUrl>                      // for QUrl
#include <Qt>                        // for CaseSensitivity
#include <utility>                   // for pair
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.h should add these lines:
#include <qassert.h>                       // for Q_ASSERT
#include <qtmetamacros.h>                  // for emit, Q_INVOKABLE, Q_OBJECT
#include <QByteArray>                      // for QByteArray
#include <QList>                           // for QList
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QVariant>                        // for QVariant
#include <QtCore>                          // for SIGNAL, ConnectionType, SLOT
#include "graph/elementid.h"               // for EdgeId, NodeId
class IApplication;
class ICommandManager;
class IMutableGraph;
class IParser;
class Progressable;

/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.h should remove these lines:
- #include "shared/commands/icommandmanager.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.h:
#include <qassert.h>                       // for Q_ASSERT
#include <qtmetamacros.h>                  // for emit, Q_INVOKABLE, Q_OBJECT
#include <QByteArray>                      // for QByteArray
#include <QList>                           // for QList
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QVariant>                        // for QVariant
#include <QtCore>                          // for SIGNAL, ConnectionType, SLOT
#include <memory>                          // for unique_ptr, make_unique
#include "graph/elementid.h"               // for EdgeId, NodeId
#include "shared/graph/igraph.h"           // for IGraph
#include "shared/graph/igraphmodel.h"      // for IGraphModel
#include "shared/loading/iparserthread.h"  // for IParserThread
#include "shared/loading/urltypes.h"       // for UrlTypes
#include "shared/plugins/iplugin.h"        // for IPlugin, IPluginInstance
#include "shared/ui/idocument.h"           // for IDocument
#include "shared/ui/iselectionmanager.h"   // for ISelectionManager
class Graph;  // lines 37-37
class IApplication;
class ICommandManager;
class IMutableGraph;
class IParser;
class Progressable;
class SelectionManager;  // lines 38-38
---

/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.cpp should add these lines:
#include "iapplication.h"  // for IApplication

/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.cpp:
#include "baseplugin.h"
#include "iapplication.h"  // for IApplication
---


/home/runner/work/graphia/graphia/source/shared/loading/userdata.h should add these lines:
#include <qtmetamacros.h>                   // for Q_OBJECT, signals
#include <stddef.h>                         // for size_t
class Progressable;

/home/runner/work/graphia/graphia/source/shared/loading/userdata.h should remove these lines:
- #include <QSet>  // lines 31-31
- #include "shared/utils/pair_iterator.h"  // lines 25-25
- #include "shared/utils/progressable.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdata.h:
#include <json_helper.h>                    // for json
#include <qtmetamacros.h>                   // for Q_OBJECT, signals
#include <stddef.h>                         // for size_t
#include <QObject>                          // for QObject
#include <QString>                          // for QString
#include <QVariant>                         // for QVariant
#include <map>                              // for map
#include <vector>                           // for vector
#include "shared/loading/iuserdata.h"       // for IUserData
#include "shared/loading/userdatavector.h"  // for UserDataVector
class Progressable;
---

/home/runner/work/graphia/graphia/source/shared/loading/userdata.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <stdint.h>                  // for uint64_t
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for find_if, max
#include <json.hpp>                  // for basic_json, iter_impl
#include <string>                    // for operator<=>, string
#include <utility>                   // for pair, move
#include "loading/userdatavector.h"  // for UserDataVector
#include "utils/progressable.h"      // for Progressable

/home/runner/work/graphia/graphia/source/shared/loading/userdata.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdata.cpp:
#include "userdata.h"
#include <qassert.h>                 // for Q_ASSERT
#include <stdint.h>                  // for uint64_t
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for find_if, max
#include <json.hpp>                  // for basic_json, iter_impl
#include <string>                    // for operator<=>, string
#include <utility>                   // for pair, move
#include "loading/userdatavector.h"  // for UserDataVector
#include "shared/utils/container.h"  // for contains, removeByValue
#include "utils/progressable.h"      // for Progressable
---


/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.h should add these lines:
#include <stddef.h>                     // for size_t

/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.h should remove these lines:
- #include <limits>  // lines 29-29
- #include <utility>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdatavector.h:
#include <json_helper.h>                // for json
#include <stddef.h>                     // for size_t
#include <QString>                      // for QString
#include <QStringList>                  // for QStringList
#include <vector>                       // for vector
#include "shared/utils/typeidentity.h"  // for TypeIdentity
---

/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.cpp should add these lines:
#include <QList>      // for QList
#include <algorithm>  // for sort, unique
#include <json.hpp>   // for basic_json, iter_impl

/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.cpp should remove these lines:
- #include "shared/utils/container.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdatavector.cpp:
#include "userdatavector.h"
#include <QList>      // for QList
#include <algorithm>  // for sort, unique
#include <json.hpp>   // for basic_json, iter_impl
---


/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.h should add these lines:
#include <qtmetamacros.h>                     // for Q_INVOKABLE, slots, Q_O...
#include <stddef.h>                           // for size_t
#include <QList>                              // for QList
#include <QModelIndex>                        // for QModelIndex
#include <QString>                            // for QString
#include <QVariant>                           // for QVariant
#include <Qt>                                 // for ItemDataRole
class IDocument;
class QByteArray;

/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.h should remove these lines:
- #include <QObject>  // lines 29-29
- #include <deque>  // lines 33-33
- #include "shared/graph/elementid.h"  // lines 22-22
- #include "shared/ui/idocument.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.h:
#include <qtmetamacros.h>                     // for Q_INVOKABLE, slots, Q_O...
#include <stddef.h>                           // for size_t
#include <QAbstractTableModel>                // for QAbstractTableModel
#include <QHash>                              // for QHash
#include <QList>                              // for QList
#include <QModelIndex>                        // for QModelIndex
#include <QString>                            // for QString
#include <QStringList>                        // for QStringList
#include <QVariant>                           // for QVariant
#include <Qt>                                 // for ItemDataRole
#include <mutex>                              // for recursive_mutex
#include <vector>                             // for vector
#include "shared/loading/iuserelementdata.h"  // for IUserNodeData
class Graph;  // lines 35-35
class IDocument;
class IGraph;  // lines 36-36
class QByteArray;
---

/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.cpp should add these lines:
#include <qassert.h>                                     // for Q_ASSERT
#include <QByteArray>                                    // for QByteArray
#include <QMetaObject>                                   // for QMetaObject
#include <QObject>                                       // for QObject
#include <QtCore>                                        // for ItemDataRole
#include <algorithm>                                     // for sort, transform
#include <functional>                                    // for less, greater
#include <iterator>                                      // for back_inserter
#include <map>                                           // for operator==
#include <utility>                                       // for as_const
#include "graph/elementid.h"                             // for NodeId
#include "graph/elementid_containers.h"                  // for NodeIdSet
#include "loading/iuserelementdata.h"                    // for IUserElement...
#include "ui/idocument.h"                                // for IDocument
#include "ui/qml/app/graphia/SharedTypes/elementtype.h"  // for ElementType
#include "ui/qml/app/graphia/SharedTypes/valuetype.h"    // for ValueType

/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.cpp should remove these lines:
- #include <QtGlobal>  // lines 32-32
- #include "shared/attributes/valuetype.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.cpp:
#include "nodeattributetablemodel.h"
#include <qassert.h>                                     // for Q_ASSERT
#include <QByteArray>                                    // for QByteArray
#include <QMetaObject>                                   // for QMetaObject
#include <QObject>                                       // for QObject
#include <QSet>                                          // for QSet
#include <QtCore>                                        // for ItemDataRole
#include <algorithm>                                     // for sort, transform
#include <functional>                                    // for less, greater
#include <iterator>                                      // for back_inserter
#include <map>                                           // for operator==
#include <utility>                                       // for as_const
#include "graph/elementid.h"                             // for NodeId
#include "graph/elementid_containers.h"                  // for NodeIdSet
#include "loading/iuserelementdata.h"                    // for IUserElement...
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/commands/icommandmanager.h"             // for ICommandManager
#include "shared/graph/igraph.h"                         // for IGraph
#include "shared/graph/igraphmodel.h"                    // for IGraphModel
#include "shared/ui/iselectionmanager.h"                 // for ISelectionMa...
#include "shared/utils/container.h"                      // for contains
#include "shared/utils/string.h"                         // for toQStringList
#include "ui/idocument.h"                                // for IDocument
#include "ui/qml/app/graphia/SharedTypes/elementtype.h"  // for ElementType
#include "ui/qml/app/graphia/SharedTypes/valuetype.h"    // for ValueType
---


/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.h should add these lines:
#include <qtmetamacros.h>                                       // for Q_PRO...
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <QVariant>                                             // for QVariant
#include "loading/iparser.h"                                    // for IParser
#include "ui/qml/app/graphia/SharedTypes/pairwisecolumntype.h"  // for Pairw...
class IDocument;
class IGraphModel;
class IParserThread;
class IPlugin;
class ISelectionManager;
class QAbstractTableModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.h should remove these lines:
- #include "shared/graph/grapharray.h"  // lines 30-30
- #include "shared/loading/pairwisecolumntype.h"  // lines 26-26
- #include "shared/loading/userelementdata.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.h:
#include <qtmetamacros.h>                                       // for Q_PRO...
#include <QList>                                                // for QList
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <QVariant>                                             // for QVariant
#include <memory>                                               // for uniqu...
#include "baseplugin.h"                                         // for BaseP...
#include "loading/iparser.h"                                    // for IParser
#include "shared/loading/tabulardata.h"                         // for Tabul...
#include "shared/plugins/nodeattributetablemodel.h"             // for NodeA...
#include "ui/qml/app/graphia/SharedTypes/pairwisecolumntype.h"  // for Pairw...
class IDocument;
class IGraphModel;
class IParserThread;
class IPlugin;
class ISelectionManager;
class QAbstractTableModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.cpp should add these lines:
#include <qassert.h>                                   // for Q_ASSERT
#include <stddef.h>                                    // for size_t
#include <QDebug>                                      // for QDebug
#include <QMap>                                        // for QMap, operator!=
#include <QMessageLogger>                              // for qDebug
#include <QObject>                                     // for QObject
#include <QStringLiteral>                              // for qMakeStringPri...
#include <QUrl>                                        // for QUrl
#include <QVector>                                     // for QVector
#include <QtCore>                                      // for SIGNAL, SLOT
#include <map>                                         // for operator==
#include <utility>                                     // for move
#include "graph/elementid.h"                           // for NodeId
#include "graph/elementid_containers.h"                // for NodeIdSet
#include "graph/igraphmodel.h"                         // for IGraphModel
#include "loading/iuserelementdata.h"                  // for IUserElementData
#include "loading/tabulardata.h"                       // for TabularData
#include "plugins/baseplugin.h"                        // for BasePluginInst...
#include "plugins/nodeattributetablemodel.h"           // for NodeAttributeT...
#include "ui/idocument.h"                              // for IDocument
#include "ui/iselectionmanager.h"                      // for ISelectionManager
#include "utils/string.h"                              // for isInteger
class IParserThread;
class IPlugin;

/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.cpp should remove these lines:
- #include <json_helper.h>  // lines 34-34
- #include "shared/attributes/iattribute.h"  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.cpp:
#include "basegenericplugin.h"
#include <qassert.h>                                   // for Q_ASSERT
#include <stddef.h>                                    // for size_t
#include <QDebug>                                      // for QDebug
#include <QMap>                                        // for QMap, operator!=
#include <QMessageLogger>                              // for qDebug
#include <QObject>                                     // for QObject
#include <QStringLiteral>                              // for qMakeStringPri...
#include <QUrl>                                        // for QUrl
#include <QVector>                                     // for QVector
#include <QtCore>                                      // for SIGNAL, SLOT
#include <map>                                         // for operator==
#include <utility>                                     // for move
#include "graph/elementid.h"                           // for NodeId
#include "graph/elementid_containers.h"                // for NodeIdSet
#include "graph/igraphmodel.h"                         // for IGraphModel
#include "loading/iuserelementdata.h"                  // for IUserElementData
#include "loading/tabulardata.h"                       // for TabularData
#include "plugins/baseplugin.h"                        // for BasePluginInst...
#include "plugins/nodeattributetablemodel.h"           // for NodeAttributeT...
#include "shared/loading/adjacencymatrixfileparser.h"  // for AdjacencyMatri...
#include "shared/loading/biopaxfileparser.h"           // for BiopaxFileParser
#include "shared/loading/cxparser.h"                   // for CxParser
#include "shared/loading/dotfileparser.h"              // for DotFileParser
#include "shared/loading/gmlfileparser.h"              // for GmlFileParser
#include "shared/loading/graphmlparser.h"              // for GraphMLParser
#include "shared/loading/jsongraphparser.h"            // for JsonGraphParser
#include "shared/loading/pairwisefileparser.h"         // for PairwiseFilePa...
#include "shared/utils/container.h"                    // for contains
#include "ui/idocument.h"                              // for IDocument
#include "ui/iselectionmanager.h"                      // for ISelectionManager
#include "utils/string.h"                              // for isInteger
class IParserThread;
class IPlugin;
---


(/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.cpp should add these lines:
#include <stddef.h>              // for size_t
#include <QMessageLogger>        // for qDebug
#include <json.hpp>              // for iter_impl, iteration_proxy_value
#include <string>                // for stod

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.cpp:
#include "colorgradient.h"
#include <json_helper.h>         // for parseJsonFrom
#include <stddef.h>              // for size_t
#include <QDebug>                // for QDebug
#include <QMessageLogger>        // for qDebug
#include <algorithm>             // for sort
#include <json.hpp>              // for iter_impl, iteration_proxy_value
#include <string>                // for stod
#include "shared/utils/utils.h"  // for normalise
---


(/home/runner/work/graphia/graphia/source/shared/updates/updates.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/updates/updates.cpp should add these lines:
#include <QByteArray>                // for QByteArray
#include <QFile>                     // for QFile
#include <QtCore>                    // for operator|
#include <json.hpp>                  // for basic_json, iter_impl, json_ref
#include <string>                    // for allocator, basic_string, string

/home/runner/work/graphia/graphia/source/shared/updates/updates.cpp should remove these lines:
- #include <QStringList>  // lines 32-32
- #include "shared/utils/checksum.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/updates/updates.cpp:
#include "updates.h"
#include <json_helper.h>             // for json
#include <QByteArray>                // for QByteArray
#include <QDir>                      // for QDir
#include <QFile>                     // for QFile
#include <QFileInfo>                 // for QFileInfo
#include <QStandardPaths>            // for QStandardPaths
#include <QString>                   // for QString, operator""_s, operator+
#include <QSysInfo>                  // for QSysInfo
#include <QtCore>                    // for operator|
#include <algorithm>                 // for remove_if, sort
#include <json.hpp>                  // for basic_json, iter_impl, json_ref
#include <regex>                     // for regex_match, regex
#include <string>                    // for allocator, basic_string, string
#include "build_defines.h"           // for VERSION
#include "shared/utils/container.h"  // for contains
#include "shared/utils/crypto.h"     // for rsaVerifySignature
#include "shared/utils/string.h"     // for hexToString, numericCompare, isHex
#include "shared/utils/utils.h"      // for exclusiveOr
---


(/home/runner/work/graphia/graphia/source/shared/utils/color.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/color.cpp should add these lines:
#include <bits/std_abs.h>      // for abs
#include <QByteArray>          // for QByteArray
#include <Qt>                  // for GlobalColor

/home/runner/work/graphia/graphia/source/shared/utils/color.cpp should remove these lines:
- #include <cmath>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/color.cpp:
#include "color.h"
#include <bits/std_abs.h>      // for abs
#include <QByteArray>          // for QByteArray
#include <QCryptographicHash>  // for QCryptographicHash
#include <Qt>                  // for GlobalColor
---


(/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.cpp should add these lines:
#include <stddef.h>                         // for size_t
#include <QChar>                            // for QChar
#include <QMessageLogger>                   // for qDebug
#include <QRegularExpressionMatchIterator>  // for QRegularExpressionMatchIt...
#include <json.hpp>                         // for iter_impl, basic_json
#include <utility>                          // for as_const

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.cpp should remove these lines:
- #include <algorithm>  // lines 30-30
- #include "shared/utils/utils.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.cpp:
#include "colorpalette.h"
#include <json_helper.h>                    // for parseJsonFrom
#include <stddef.h>                         // for size_t
#include <QChar>                            // for QChar
#include <QDebug>                           // for QDebug
#include <QMessageLogger>                   // for qDebug
#include <QRegularExpression>               // for QRegularExpressionMatch
#include <QRegularExpressionMatchIterator>  // for QRegularExpressionMatchIt...
#include <json.hpp>                         // for iter_impl, basic_json
#include <utility>                          // for as_const
#include "shared/utils/color.h"             // for colorForString
#include "shared/utils/container.h"         // for contains
---


(/home/runner/work/graphia/graphia/source/shared/utils/apppathname.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/apppathname.cpp should add these lines:
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIsSet, qgetenv
#include <QByteArray>                // for QByteArray
#include <QtCore>                    // for Q_OS_LINUX

/home/runner/work/graphia/graphia/source/shared/utils/apppathname.cpp should remove these lines:
- #include <QDir>  // lines 23-23
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/apppathname.cpp:
#include "apppathname.h"
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIsSet, qgetenv
#include <QByteArray>                // for QByteArray
#include <QFileInfo>                 // for QFileInfo
#include <QtCore>                    // for Q_OS_LINUX
---


/home/runner/work/graphia/graphia/source/shared/utils/console.h should add these lines:
#include <stddef.h>  // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/console.h should remove these lines:
- #include <QtGlobal>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/console.h:
#include <stddef.h>  // for size_t
---

/home/runner/work/graphia/graphia/source/shared/utils/console.cpp should add these lines:
#include <qtpreprocessorsupport.h>  // for Q_UNUSED

/home/runner/work/graphia/graphia/source/shared/utils/console.cpp should remove these lines:
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/console.cpp:
#include "console.h"
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <sys/ioctl.h>              // for ioctl, winsize, TIOCGWINSZ
#include <unistd.h>                 // for isatty
#include <cstdio>                   // for fileno, size_t, stderr, stdout
---


/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.h should add these lines:
#include <memory>   // for shared_ptr
#include <vector>   // for vector

/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/consolecapture.h:
#include <QString>  // for QString
#include <cstdio>   // for FILE
#include <fstream>  // for ostream, basic_ofstream, ofstream, streambuf
#include <memory>   // for shared_ptr
#include <vector>   // for vector
---

/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.cpp should add these lines:
#include <QByteArray>  // for QByteArray

/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.cpp should remove these lines:
- #include "odsconsolecapture.h"  // lines 20-20

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/consolecapture.cpp:
#include "consolecapture.h"
#include <QByteArray>  // for QByteArray
#include <iostream>    // for cerr, cout
#include "console.h"   // for isRunningInConsole
#include "debugger.h"  // for isDebuggerPresent
---


(/home/runner/work/graphia/graphia/source/shared/utils/crypto.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/crypto.cpp should add these lines:
#include <cryptopp/config_int.h>    // for byte
#include <cryptopp/filters.h>       // for SignatureVerificationFilter, Stri...
#include <cryptopp/iterhash.h>      // for IteratedHashWithStaticTransform<>...
#include <cryptopp/oaep.h>          // for OAEP
#include <cryptopp/pubkey.h>        // for P1363_MGF1, TF_ES, TF_SS
#include <cryptopp/sha.h>           // for SHA1
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QByteArray>               // for QByteArray
#include <QIODevice>                // for QIODevice
#include <QString>                  // for QString
#include <exception>                // for exception

/home/runner/work/graphia/graphia/source/shared/utils/crypto.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/crypto.cpp:
#include "crypto.h"
#include <cryptopp/aes.h>           // for AES
#include <cryptopp/config_int.h>    // for byte
#include <cryptopp/filters.h>       // for SignatureVerificationFilter, Stri...
#include <cryptopp/iterhash.h>      // for IteratedHashWithStaticTransform<>...
#include <cryptopp/modes.h>         // for CFB_Mode
#include <cryptopp/oaep.h>          // for OAEP
#include <cryptopp/osrng.h>         // for AutoSeededRandomPool
#include <cryptopp/pubkey.h>        // for P1363_MGF1, TF_ES, TF_SS
#include <cryptopp/rsa.h>           // for RSA, RSAFunction, InvertibleRSAFu...
#include <cryptopp/sha.h>           // for SHA1
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QByteArray>               // for QByteArray
#include <QFile>                    // for QFile
#include <QIODevice>                // for QIODevice
#include <QString>                  // for QString
#include <exception>                // for exception
#include "shared/utils/string.h"    // for bytesToHex
---


/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.h should add these lines:
#include <stddef.h>            // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.h should remove these lines:
- #include <atomic>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.h:
#include <stddef.h>            // for size_t
#include <QString>             // for QString
#include <condition_variable>  // for condition_variable_any
#include <deque>               // for deque
#include <functional>          // for function
#include <map>                 // for map
#include <mutex>               // for recursive_mutex
#include <thread>              // for thread
---

/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.cpp should add these lines:
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for min
#include <utility>                   // for pair, move

/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.cpp should remove these lines:
- #include <QtGlobal>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.cpp:
#include "deferredexecutor.h"
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for min
#include <utility>                   // for pair, move
#include "shared/utils/container.h"  // for contains
#include "shared/utils/thread.h"     // for currentThreadName
---


/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.h should add these lines:
#include <qtmetamacros.h>         // for Q_OBJECT, signals
class QTemporaryFile;

/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.h should remove these lines:
- #include <QTemporaryFile>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.h:
#include <qtmetamacros.h>         // for Q_OBJECT, signals
#include <QNetworkAccessManager>  // for QNetworkAccessManager
#include <QObject>                // for QObject
#include <QString>                // for QString
#include <QTimer>                 // for QTimer
#include <QUrl>                   // for QUrl
#include <map>                    // for map
#include <memory>                 // for unique_ptr
#include <queue>                  // for queue
class QNetworkReply;  // lines 33-33
class QTemporaryFile;
---

/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.cpp should add these lines:
#include <qassert.h>           // for Q_ASSERT
#include <qtypes.h>            // for qint64
#include <QByteArray>          // for QByteArray
#include <QDebug>              // for QDebug
#include <QDir>                // for QDir
#include <QFile>               // for QFile
#include <QMessageLogger>      // for qDebug
#include <QNetworkRequest>     // for QNetworkRequest
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QVariant>            // for QVariant
#include <utility>             // for pair

/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.cpp should remove these lines:
- #include <cstdio>  // lines 29-29
- #include <iostream>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.cpp:
#include "downloadqueue.h"
#include <qassert.h>           // for Q_ASSERT
#include <qtypes.h>            // for qint64
#include <QByteArray>          // for QByteArray
#include <QDebug>              // for QDebug
#include <QDir>                // for QDir
#include <QFile>               // for QFile
#include <QFileInfo>           // for QFileInfo
#include <QMessageLogger>      // for qDebug
#include <QNetworkReply>       // for QNetworkReply
#include <QNetworkRequest>     // for QNetworkRequest
#include <QRegularExpression>  // for QRegularExpression
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QTemporaryDir>       // for QTemporaryDir
#include <QTemporaryFile>      // for QTemporaryFile
#include <QVariant>            // for QVariant
#include <algorithm>           // for any_of
#include <utility>             // for pair
---


(/home/runner/work/graphia/graphia/source/shared/utils/failurereason.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/failurereason.cpp should add these lines:
#include <QStringLiteral>     // for qMakeStringPrivate, QStringLiteral

/home/runner/work/graphia/graphia/source/shared/utils/failurereason.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/failurereason.cpp:
#include "failurereason.h"
#include <QStringLiteral>     // for qMakeStringPrivate, QStringLiteral
#include "build_defines.h"    // for VERSION
#include "source_location.h"  // for source_location
---


/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.h should add these lines:
#include <bits/chrono.h>  // for time_point, high_resolution_clock, seconds
#include <utility>        // for move

/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.h should remove these lines:
- #include <chrono>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/performancecounter.h:
#include <bits/chrono.h>  // for time_point, high_resolution_clock, seconds
#include <deque>          // for deque
#include <functional>     // for function
#include <utility>        // for move
---

/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.cpp should add these lines:
#include <stddef.h>  // for size_t
#include <compare>   // for operator>, strong_ordering

/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/performancecounter.cpp:
#include "performancecounter.h"
#include <stddef.h>  // for size_t
#include <compare>   // for operator>, strong_ordering
---


/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QString>         // for QString

/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.h should remove these lines:
- class QString;  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QString>         // for QString
class QEvent;  // lines 24-24
---

/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.cpp should add these lines:
#include <QUrl>            // for QUrl

/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.cpp:
#include "macosfileopeneventfilter.h"
#include <QEvent>          // for QEvent
#include <QFileOpenEvent>  // for QFileOpenEvent
#include <QString>         // for QString
#include <QUrl>            // for QUrl
---


(/home/runner/work/graphia/graphia/source/shared/utils/random.h has correct #includes/fwd-decls)

(/home/runner/work/graphia/graphia/source/shared/utils/random.cpp has correct #includes/fwd-decls)


(/home/runner/work/graphia/graphia/source/shared/utils/qrcextract.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/qrcextract.cpp should add these lines:
#include <QList>           // for QList
#include <QMessageLogger>  // for qWarning

/home/runner/work/graphia/graphia/source/shared/utils/qrcextract.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/qrcextract.cpp:
#include "qrcextract.h"
#include <QDebug>          // for QDebug
#include <QDir>            // for QDir, operator|
#include <QFile>           // for QFile
#include <QList>           // for QList
#include <QMessageLogger>  // for qWarning
#include <QString>         // for QString, operator""_s
#include <utility>         // for as_const
---


/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.h should add these lines:
#include <qtypes.h>                  // for qint64
#include <stddef.h>                  // for size_t
#include <QLatin1Char>               // for StringLiterals
#include <QStringLiteral>            // for QStringLiteral

/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/scopetimer.h:
#include <qtypes.h>                  // for qint64
#include <stddef.h>                  // for size_t
#include <QElapsedTimer>             // for QElapsedTimer
#include <QLatin1Char>               // for StringLiterals
#include <QString>                   // for QString
#include <QStringLiteral>            // for QStringLiteral
#include <deque>                     // for deque
#include <map>                       // for map
#include <mutex>                     // for mutex
#include "shared/utils/singleton.h"  // for Singleton
---

/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.cpp should add these lines:
#include <QMessageLogger>  // for qDebug
#include <utility>         // for pair

/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.cpp should remove these lines:
- #include "shared/utils/container.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/scopetimer.cpp:
#include "scopetimer.h"
#include <QDebug>          // for QDebug
#include <QMessageLogger>  // for qDebug
#include <algorithm>       // for minmax_element
#include <cmath>           // for sqrt
#include <numeric>         // for accumulate
#include <utility>         // for pair
---


(/home/runner/work/graphia/graphia/source/shared/utils/static_block.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/static_block.cpp should add these lines:
#include <utility>    // for pair

/home/runner/work/graphia/graphia/source/shared/utils/static_block.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/static_block.cpp:
#include "static_block.h"
#include <algorithm>  // for sort
#include <utility>    // for pair
#include <vector>     // for vector
---


(/home/runner/work/graphia/graphia/source/shared/utils/showinfolder.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/showinfolder.cpp should add these lines:
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <QList>             // for QList
#include <QtCore>            // for Q_OS_UNIX

/home/runner/work/graphia/graphia/source/shared/utils/showinfolder.cpp should remove these lines:
- #include <QDebug>  // lines 26-26
- #include <QDir>  // lines 23-23
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/showinfolder.cpp:
#include "showinfolder.h"
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <QFileInfo>         // for QFileInfo
#include <QList>             // for QList
#include <QProcess>          // for QProcess
#include <QtCore>            // for Q_OS_UNIX
---


(/home/runner/work/graphia/graphia/source/shared/utils/signalhandling.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/signalhandling.cpp should add these lines:
#include <initializer_list>  // for initializer_list

/home/runner/work/graphia/graphia/source/shared/utils/signalhandling.cpp should remove these lines:
- #include <unistd.h>  // lines 30-30
- #include <QtGlobal>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/signalhandling.cpp:
#include "signalhandling.h"
#include <QCoreApplication>  // for QCoreApplication
#include <csignal>           // for sigaction, sigaddset, sigemptyset, SIGHUP
#include <initializer_list>  // for initializer_list
#include <iostream>          // for char_traits, basic_ostream, operator<<
---


/home/runner/work/graphia/graphia/source/shared/utils/string.h should add these lines:

/home/runner/work/graphia/graphia/source/shared/utils/string.h should remove these lines:
- #include <istream>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/string.h:
#include <QRegularExpression>        // for QRegularExpressionMatch, QRegula...
#include <QString>                   // for QString, operator""_s
#include <QStringList>               // for QStringList
#include <cstddef>                   // for byte, size_t
#include <iomanip>                   // for operator<<, setfill, setw
#include <sstream>                   // for basic_ostream, basic_ostringstream
#include <string>                    // for char_traits, string, allocator
#include <vector>                    // for vector
#include "shared/utils/container.h"  // for contains
---

/home/runner/work/graphia/graphia/source/shared/utils/string.cpp should add these lines:
#include <bits/std_abs.h>           // for abs
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <qtypes.h>                 // for qsizetype
#include <stdio.h>                  // for EOF
#include <QChar>                    // for QChar, operator==
#include <QList>                    // for QList
#include <QStringLiteral>           // for qMakeStringPrivate, QStringLiteral
#include <Qt>                       // for CaseSensitivity
#include <algorithm>                // for copy, max
#include <cstdlib>                  // for strtol
#include <istream>                  // for basic_istream, basic_ostream, bas...
#include <iterator>                 // for back_insert_iterator, back_inserter

/home/runner/work/graphia/graphia/source/shared/utils/string.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/string.cpp:
#include "string.h"
#include <bits/std_abs.h>           // for abs
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <qtypes.h>                 // for qsizetype
#include <stdio.h>                  // for EOF
#include <QChar>                    // for QChar, operator==
#include <QList>                    // for QList
#include <QLocale>                  // for QLocale
#include <QRegularExpression>       // for QRegularExpression, QRegularExpre...
#include <QStringList>              // for QStringList
#include <QStringLiteral>           // for qMakeStringPrivate, QStringLiteral
#include <QStringView>              // for QStringView
#include <Qt>                       // for CaseSensitivity
#include <algorithm>                // for copy, max
#include <cmath>                    // for pow, isfinite
#include <cstdlib>                  // for strtol
#include <istream>                  // for basic_istream, basic_ostream, bas...
#include <iterator>                 // for back_insert_iterator, back_inserter
#include <limits>                   // for numeric_limits
#include <sstream>                  // for basic_stringstream
#include <vector>                   // for vector
---


/home/runner/work/graphia/graphia/source/shared/utils/threadpool.h should add these lines:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stddef.h>                 // for size_t
#include <stdint.h>                 // for uint64_t
#include <iterator>                 // for distance, forward_iterator_tag

/home/runner/work/graphia/graphia/source/shared/utils/threadpool.h should remove these lines:
- #include <algorithm>  // lines 30-30
- #include <atomic>  // lines 31-31
- #include <memory>  // lines 34-34
- #include "is_detected.h"  // lines 25-25
- #include "is_std_container.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/threadpool.h:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stddef.h>                 // for size_t
#include <stdint.h>                 // for uint64_t
#include <QString>                  // for operator""_s, QString
#include <condition_variable>       // for condition_variable
#include <future>                   // for future, packaged_task
#include <iterator>                 // for distance, forward_iterator_tag
#include <mutex>                    // for mutex, unique_lock
#include <queue>                    // for queue
#include <thread>                   // for thread
#include <type_traits>              // for enable_if_t, invoke_result_t
#include <utility>                  // for forward, exchange, declval
#include <vector>                   // for vector
#include "function_traits.h"        // for function_traits
#include "singleton.h"              // for Singleton
#include "void_callable_wrapper.h"  // for void_callable_wrapper
template <typename ResultsVectorOrVoid, bool = std::is_void_v<ResultsVectorOrVoid>> class ThreadPool::ResultMember;  // lines 84-85
---

/home/runner/work/graphia/graphia/source/shared/utils/threadpool.cpp should add these lines:
#include "utils/void_callable_wrapper.h"  // for void_callable_wrapper

/home/runner/work/graphia/graphia/source/shared/utils/threadpool.cpp should remove these lines:
- #include <QtGlobal>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/threadpool.cpp:
#include "threadpool.h"
#include "shared/utils/thread.h"          // for setCurrentThreadName
#include "utils/void_callable_wrapper.h"  // for void_callable_wrapper
---


/home/runner/work/graphia/graphia/source/shared/utils/utils.h should add these lines:
#include <stddef.h>  // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/utils.h should remove these lines:
- #include <QString>  // lines 25-25
- #include <cmath>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/utils.h:
#include <stddef.h>  // for size_t
#include <vector>    // for vector
---

/home/runner/work/graphia/graphia/source/shared/utils/utils.cpp should add these lines:
#include <stdint.h>  // for uint64_t

/home/runner/work/graphia/graphia/source/shared/utils/utils.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/utils.cpp:
#include "utils.h"
#include <stdint.h>  // for uint64_t
#include <numbers>   // for pi_v
---


/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.h should add these lines:
#include <stddef.h>                                    // for size_t
#include "ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType

/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.h should remove these lines:
- #include "shared/attributes/valuetype.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/typeidentity.h:
#include <stddef.h>                                    // for size_t
#include <array>                                       // for array
#include "ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
class QString;  // lines 26-26
---

/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.cpp should add these lines:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED

/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/typeidentity.cpp:
#include "typeidentity.h"
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QString>                  // for QString
---


(/home/runner/work/graphia/graphia/source/shared/ui/qml/app/graphia/SharedTypes/elementtype.h has correct #includes/fwd-decls)

(/home/runner/work/graphia/graphia/source/shared/ui/qml/app/graphia/SharedTypes/elementtype.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.h should add these lines:
#include <stddef.h>  // for size_t

/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.h:
#include <stddef.h>  // for size_t
#include <QString>   // for QString
#include <limits>    // for numeric_limits
#include <map>       // for map
#include <vector>    // for vector
---

/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for max, min
#include <utility>                   // for pair

/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.cpp:
#include "columnannotation.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for max, min
#include <utility>                   // for pair
#include "shared/utils/container.h"  // for contains
#include "shared/utils/string.h"     // for toNumber, isNumeric
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.h should add these lines:
#include <qassert.h>                  // for Q_ASSERT
#include <stddef.h>                   // for size_t
#include <stdint.h>                   // for uint64_t

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.h should remove these lines:
- #include <iterator>  // lines 28-28
- #include <limits>  // lines 27-27
- #include <type_traits>  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.h:
#include <qassert.h>                  // for Q_ASSERT
#include <stddef.h>                   // for size_t
#include <stdint.h>                   // for uint64_t
#include <QString>                    // for QString
#include <map>                        // for map
#include <memory>                     // for shared_ptr
#include <vector>                     // for vector
#include "shared/graph/elementid.h"   // for NodeId
#include "shared/utils/container.h"   // for contains
#include "shared/utils/statistics.h"  // for Statistics
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.cpp should add these lines:

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.cpp should remove these lines:
- #include <algorithm>  // lines 23-23
- #include <cmath>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.cpp:
#include "correlationdatavector.h"
#include "shared/utils/container.h"  // for rankingOf
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.h should add these lines:
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QStringList>                               // for QStringList
#include <QVariant>                                  // for QVariant

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.h should remove these lines:
- #include <QObject>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.h:
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QString>                                   // for QString
#include <QStringList>                               // for QStringList
#include <QVariant>                                  // for QVariant
#include <map>                                       // for map
#include <vector>                                    // for vector
#include "shared/plugins/nodeattributetablemodel.h"  // for NodeAttributeTab...
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <QList>                     // for QList

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.cpp:
#include "correlationnodeattributetablemodel.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QList>                     // for QList
#include <algorithm>                 // for transform
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.h should add these lines:
#include "correlationdatavector.h"  // for ContinuousDataVectors
class IParser;

/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.h should remove these lines:
- #include <vector>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.h:
#include "correlationdatavector.h"  // for ContinuousDataVectors
#include "normaliser.h"             // for Normaliser
class IParser;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.cpp should add these lines:
#include <stddef.h>                  // for size_t
#include <stdint.h>                  // for uint64_t
#include <vector>                    // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.cpp should remove these lines:
- #include "shared/utils/cancellable.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.cpp:
#include "featurescaling.h"
#include <stddef.h>                  // for size_t
#include <stdint.h>                  // for uint64_t
#include <algorithm>                 // for max, min
#include <cmath>                     // for sqrt
#include <limits>                    // for numeric_limits
#include <vector>                    // for vector
#include "shared/loading/iparser.h"  // for IParser
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.h should add these lines:
#include <stddef.h>
#include <stdint.h>
#include <QMap>
#include <QVariant>
#include <algorithm>
#include <atomic>
#include <memory>
#include <utility>
#include <variant>
#include "shared/utils/qmlenum.h"
#include "ui/qml/app/graphia/Plugins/Correlation/correlationtype.h"

/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.h should remove these lines:
- #include "correlationtype.h"  // lines 23-23
- #include "shared/utils/is_detected.h"  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlation.h:
#include <stddef.h>
#include <stdint.h>
#include <QMap>
#include <QObject>
#include <QString>
#include <QVariant>
#include <QVariantMap>
#include <algorithm>
#include <atomic>
#include <cmath>
#include <iterator>
#include <memory>
#include <utility>
#include <variant>
#include <vector>
#include "correlationdatavector.h"
#include "knnprotograph.h"
#include "shared/graph/covariancematrix.h"
#include "shared/graph/edgelist.h"
#include "shared/utils/cancellable.h"
#include "shared/utils/progressable.h"
#include "shared/utils/qmlenum.h"
#include "shared/utils/redirects.h"
#include "shared/utils/threadpool.h"
#include "ui/qml/app/graphia/Plugins/Correlation/correlationtype.h"
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.cpp should add these lines:
#include <bits/std_abs.h>             // for abs
#include <numeric>                    // for inner_product
#include "shared/utils/statistics.h"  // for medianOf

/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlation.cpp:
#include "correlation.h"
#include <bits/std_abs.h>             // for abs
#include <numeric>                    // for inner_product
#include "shared/utils/statistics.h"  // for medianOf
---


/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.h should add these lines:
#include <stddef.h>                    // for size_t
#include <QString>                     // for QString
#include <vector>                      // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.h:
#include <stddef.h>                    // for size_t
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <vector>                      // for vector
#include "shared/commands/icommand.h"  // for ICommand
class CorrelationPluginInstance;  // lines 26-26
---

/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.cpp should add these lines:
#include <qassert.h>                        // for Q_ASSERT
#include <stdint.h>                         // for uint64_t
#include <QMap>                             // for QMap
#include <algorithm>                        // for min, sort
#include <cmath>                            // for sqrt
#include <numeric>                          // for iota
#include "shared/graph/covariancematrix.h"  // for CovarianceMatrix

/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.cpp:
#include "hierarchicalclusteringcommand.h"
#include <qassert.h>                        // for Q_ASSERT
#include <stdint.h>                         // for uint64_t
#include <QMap>                             // for QMap
#include <QObject>                          // for QObject
#include <algorithm>                        // for min, sort
#include <cmath>                            // for sqrt
#include <limits>                           // for numeric_limits
#include <numeric>                          // for iota
#include <vector>                           // for vector
#include "correlation.h"                    // for CovarianceCorrelation
#include "correlationdatavector.h"          // for ContinuousDataVector, Con...
#include "correlationplugin.h"              // for CorrelationPluginInstance
#include "shared/graph/covariancematrix.h"  // for CovarianceMatrix
---


/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.h should add these lines:
#include <stddef.h>                         // for size_t

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.h:
#include <stddef.h>                         // for size_t
#include <QString>                          // for QString
#include <set>                              // for set
#include <vector>                           // for vector
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/loading/tabulardata.h"     // for TabularData
#include "shared/loading/userdatavector.h"  // for UserDataVector
class CorrelationPluginInstance;  // lines 32-32
---

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.cpp should add these lines:
#include <QLatin1Char>                  // for StringLiterals
#include <QObject>                      // for QObject
#include <map>                          // for map
#include <utility>                      // for move
#include "shared/loading/userdata.h"    // for UserData
#include "shared/utils/typeidentity.h"  // for TypeIdentity

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.cpp should remove these lines:
- #include "../crashhandler.h"  // lines 26-26
- #include "shared/loading/userelementdata.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.cpp:
#include "importannotationscommand.h"
#include <QLatin1Char>                  // for StringLiterals
#include <QObject>                      // for QObject
#include <map>                          // for map
#include <utility>                      // for move
#include "correlationplugin.h"          // for CorrelationPluginInstance
#include "shared/loading/userdata.h"    // for UserData
#include "shared/utils/string.h"        // for findUniqueName
#include "shared/utils/typeidentity.h"  // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.h should add these lines:
#include <stddef.h>
#include <cmath>
#include <vector>
#include "ui/qml/app/graphia/Plugins/Correlation/correlationtype.h"
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.h should remove these lines:
- #include "plugins/correlation/correlationtype.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.h:
#include <stddef.h>
#include <QRect>
#include <QString>
#include <cmath>
#include <vector>
#include "plugins/correlation/correlationdatavector.h"
#include "shared/loading/iparser.h"
#include "shared/loading/tabulardata.h"
#include "ui/qml/app/graphia/Plugins/Correlation/correlationtype.h"
class CorrelationPluginInstance;  // lines 31-31
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QObject>                                 // for QObject
#include <algorithm>                               // for min
#include "correlationdatavector.h"                 // for ContinuousDataVector
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.cpp should remove these lines:
- #include <set>  // lines 39-39
- #include "correlation.h"  // lines 21-21
- #include "shared/graph/igraphmodel.h"  // lines 27-27
- #include "shared/graph/imutablegraph.h"  // lines 28-28
- #include "shared/utils/string.h"  // lines 34-34

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.cpp:
#include "correlationfileparser.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QObject>                                 // for QObject
#include <QRect>                                   // for QRect
#include <algorithm>                               // for min
#include <limits>                                  // for numeric_limits
#include <span>                                    // for span
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "correlationdatavector.h"                 // for ContinuousDataVector
#include "correlationplugin.h"                     // for CorrelationPluginI...
#include "featurescaling.h"                        // for MeanNormaliser
#include "quantilenormaliser.h"                    // for QuantileNormaliser
#include "shared/loading/tabulardata.h"            // for TabularData, CsvFi...
#include "shared/loading/xlsxtabulardataparser.h"  // for XlsxTabularDataParser
#include "shared/utils/container.h"                // for sortedIndicesOf
#include "softmaxnormaliser.h"                     // for SoftmaxNormaliser
class IGraphModel;
class QUrl;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.h should add these lines:
#include "correlationdatavector.h"  // for ContinuousDataVectors
class IParser;

/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.h:
#include "correlationdatavector.h"  // for ContinuousDataVectors
#include "normaliser.h"             // for Normaliser
class IParser;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <vector>                    // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.cpp should remove these lines:
- #include <QtGlobal>  // lines 27-27
- #include <set>  // lines 24-24
- #include "shared/utils/cancellable.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.cpp:
#include "quantilenormaliser.h"
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <algorithm>                 // for sort, transform, unique
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <vector>                    // for vector
#include "shared/loading/iparser.h"  // for IParser
---


/home/runner/work/graphia/graphia/source/plugins/correlation/softmaxnormaliser.h should add these lines:
#include "correlationdatavector.h"  // for ContinuousDataVectors
class IParser;

/home/runner/work/graphia/graphia/source/plugins/correlation/softmaxnormaliser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/softmaxnormaliser.h:
#include "correlationdatavector.h"  // for ContinuousDataVectors
#include "normaliser.h"             // for Normaliser
class IParser;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/softmaxnormaliser.cpp should add these lines:
#include <stddef.h>                  // for size_t
#include <stdint.h>                  // for uint64_t
#include <algorithm>                 // for max
#include <limits>                    // for numeric_limits
#include <vector>                    // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/softmaxnormaliser.cpp should remove these lines:
- #include "shared/utils/cancellable.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/softmaxnormaliser.cpp:
#include "softmaxnormaliser.h"
#include <stddef.h>                  // for size_t
#include <stdint.h>                  // for uint64_t
#include <algorithm>                 // for max
#include <cmath>                     // for exp
#include <limits>                    // for numeric_limits
#include <vector>                    // for vector
#include "shared/loading/iparser.h"  // for IParser
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.h should add these lines:
#include <qtmetamacros.h>
#include <stddef.h>
#include <QByteArray>
#include <QObject>
#include <QVariant>
#include <cmath>
#include <memory>
#include "shared/plugins/iplugin.h"
#include "ui/qml/app/graphia/Plugins/Correlation/correlationtype.h"
class IDocument;
class IGraphModel;
class IMutableGraph;
class IParserThread;
class ISelectionManager;
class NodeId;
class Progressable;
class QAbstractTableModel;
class QUrl;

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.h should remove these lines:
- #include <QVariantList>  // lines 47-47
- #include <algorithm>  // lines 41-41
- #include <functional>  // lines 40-40
- #include <utility>  // lines 42-42
- #include "correlationtype.h"  // lines 34-34
- #include "loading/correlationfileparser.h"  // lines 31-31
- #include "shared/graph/igraphmodel.h"  // lines 23-23
- #include "shared/loading/userelementdata.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.h:
#include <qtmetamacros.h>
#include <stddef.h>
#include <QByteArray>
#include <QColor>
#include <QList>
#include <QObject>
#include <QRect>
#include <QString>
#include <QStringList>
#include <QVariant>
#include <QVariantMap>
#include <cmath>
#include <map>                                                       // for map
#include <memory>
#include <vector>
#include "columnannotation.h"
#include "correlationdatavector.h"
#include "correlationnodeattributetablemodel.h"
#include "shared/graph/edgelist.h"
#include "shared/graph/grapharray.h"
#include "shared/loading/iparser.h"
#include "shared/loading/tabulardata.h"
#include "shared/loading/userdata.h"
#include "shared/plugins/baseplugin.h"
#include "shared/plugins/iplugin.h"
#include "ui/qml/app/graphia/Plugins/Correlation/correlationtype.h"
class IDocument;
class IGraphModel;
class IMutableGraph;
class IParserThread;
class ISelectionManager;
class NodeId;
class Progressable;
class QAbstractTableModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.cpp should add these lines:
#include <bits/std_abs.h>                                         // for abs
#include <qassert.h>                                              // for Q_A...
#include <stdint.h>                                               // for uin...
#include <sys/types.h>                                            // for size_t
#include <QDebug>                                                 // for QDebug
#include <QMap>                                                   // for QMap
#include <QMessageLogger>                                         // for qDebug
#include <QStringLiteral>                                         // for qMa...
#include <QUrl>                                                   // for QUrl
#include <QVector>                                                // for QVe...
#include <QtCore>                                                 // for SIGNAL
#include <algorithm>                                              // for copy
#include <iterator>                                               // for bac...
#include <json.hpp>                                               // for bas...
#include <set>                                                    // for set
#include <string>                                                 // for bas...
#include <utility>                                                // for pair
#include "loading/correlationfileparser.h"                        // for Cor...
#include "shared/commands/icommandmanager.h"                      // for Exe...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/graph/igraph.h"                                  // for IGraph
#include "shared/graph/igraphmodel.h"                             // for IGr...
#include "shared/graph/imutablegraph.h"                           // for IMu...
#include "shared/loading/iuserelementdata.h"                      // for IUs...
#include "shared/loading/userdatavector.h"                        // for Use...
#include "shared/ui/idocument.h"                                  // for IDo...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for ope...
#include "shared/utils/progressable.h"                            // for Pro...
#include "shared/utils/qmlenum.h"                                 // for nor...
class IParserThread;
class ISelectionManager;

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.cpp should remove these lines:
- #include <QDir>  // lines 46-46
- #include "shared/loading/xlsxtabulardataparser.h"  // lines 41-41
- #include "shared/utils/iterator_range.h"  // lines 30-30
- #include "shared/utils/random.h"  // lines 32-32
- #include "shared/utils/threadpool.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.cpp:
#include "correlationplugin.h"
#include <bits/std_abs.h>                                         // for abs
#include <json_helper.h>                                          // for json
#include <qassert.h>                                              // for Q_A...
#include <qcustomplotcolorprovider.h>                             // for QCu...
#include <stdint.h>                                               // for uin...
#include <sys/types.h>                                            // for size_t
#include <QDebug>                                                 // for QDebug
#include <QMap>                                                   // for QMap
#include <QMessageLogger>                                         // for qDebug
#include <QStringLiteral>                                         // for qMa...
#include <QUrl>                                                   // for QUrl
#include <QVector>                                                // for QVe...
#include <QtCore>                                                 // for SIGNAL
#include <algorithm>                                              // for copy
#include <iterator>                                               // for bac...
#include <json.hpp>                                               // for bas...
#include <map>                                                    // for map
#include <set>                                                    // for set
#include <string>                                                 // for bas...
#include <utility>                                                // for pair
#include "correlation.h"                                          // for Con...
#include "hierarchicalclusteringcommand.h"                        // for Hie...
#include "importannotationscommand.h"                             // for Imp...
#include "loading/correlationfileparser.h"                        // for Cor...
#include "shared/attributes/iattribute.h"                         // for IAt...
#include "shared/commands/icommandmanager.h"                      // for Exe...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/graph/grapharray_json.h"                         // for for...
#include "shared/graph/igraph.h"                                  // for IGraph
#include "shared/graph/igraphmodel.h"                             // for IGr...
#include "shared/graph/imutablegraph.h"                           // for IMu...
#include "shared/loading/iuserelementdata.h"                      // for IUs...
#include "shared/loading/userdatavector.h"                        // for Use...
#include "shared/ui/idocument.h"                                  // for IDo...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for ope...
#include "shared/ui/visualisations/ielementvisual.h"              // for IEl...
#include "shared/utils/container.h"                               // for con...
#include "shared/utils/progressable.h"                            // for Pro...
#include "shared/utils/qmlenum.h"                                 // for nor...
#include "shared/utils/redirects.h"                               // for red...
#include "shared/utils/source_location.h"                         // for CUR...
#include "shared/utils/string.h"                                  // for toQ...
class IParserThread;
class ISelectionManager;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot.h should add these lines:
#include <qqmlintegration.h>           // for QML_ELEMENT
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <stddef.h>                    // for size_t
#include <QColor>                      // for QColor
#include <QFont>                       // for QFont
#include <QFontMetrics>                // for QFontMetrics
#include <QPoint>                      // for QPoint
#include <QPointF>                     // for QPointF
#include <QString>                     // for QString
#include <limits>                      // for numeric_limits
#include <thread>                      // for thread
#include <utility>                     // for pair
class CorrelationPluginInstance;
class QEvent;
class QOffscreenSurface;
class QPainter;
class QQuickItem;
class QUrl;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot.h should remove these lines:
- #include <QOffscreenSurface>  // lines 42-42
- #include <QQmlEngine>  // lines 31-31
- #include <QVariantList>  // lines 37-37
- #include "plugins/correlation/columnannotation.h"  // lines 23-23
- #include "plugins/correlation/correlationplugin.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot.h:
#include <qcustomplot.h>               // for QCPAxis (ptr only), QCPAxisRec...
#include <qcustomplotcolorprovider.h>  // for QCustomPlotColorProvider
#include <qqmlintegration.h>           // for QML_ELEMENT
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <stddef.h>                    // for size_t
#include <QColor>                      // for QColor
#include <QElapsedTimer>               // for QElapsedTimer
#include <QFont>                       // for QFont
#include <QFontMetrics>                // for QFontMetrics
#include <QList>                       // for QList
#include <QMap>                        // for QMap
#include <QObject>                     // for QObject
#include <QPixmap>                     // for QPixmap
#include <QPoint>                      // for QPoint
#include <QPointF>                     // for QPointF
#include <QQuickPaintedItem>           // for QQuickPaintedItem
#include <QString>                     // for QString
#include <QStringList>                 // for QStringList
#include <QThread>                     // for QThread
#include <QVariantMap>                 // for QVariantMap
#include <QVector>                     // for QVector
#include <atomic>                      // for atomic_bool
#include <limits>                      // for numeric_limits
#include <map>                         // for map
#include <mutex>                       // for recursive_mutex
#include <set>                         // for set
#include <thread>                      // for thread
#include <utility>                     // for pair
#include <vector>                      // for vector
#include "shared/utils/qmlenum.h"      // for DEFINE_QML_ENUM
class CorrelationPluginInstance;
class QCPColumnAnnotations;  // lines 50-50
class QEvent;
class QOffscreenSurface;
class QPainter;
class QQuickItem;
class QUrl;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot.cpp should add these lines:
#include <qassert.h>                                // for Q_ASSERT
#include <qtenvironmentvariables.h>                 // for qEnvironmentVaria...
#include <QEvent>                                   // for QEvent
#include <QFileInfo>                                // for QFileInfo
#include <QHoverEvent>                              // for QHoverEvent
#include <QImage>                                   // for QImage
#include <QMargins>                                 // for QMargins
#include <QMessageLogger>                           // for qDebug
#include <QMetaObject>                              // for argument, Q_ARG
#include <QMouseEvent>                              // for QMouseEvent
#include <QOffscreenSurface>                        // for QOffscreenSurface
#include <QPainter>                                 // for QPainter
#include <QPen>                                     // for QPen
#include <QQuickItem>                               // for QQuickItem
#include <QRect>                                    // for QRect
#include <QRectF>                                   // for QRectF
#include <QRegularExpression>                       // for QRegularExpression
#include <QRgb>                                     // for qAlpha, qGray, QRgb
#include <QSharedPointer>                           // for QSharedPointer
#include <QSize>                                    // for QSize
#include <QStringLiteral>                           // for qMakeStringPrivate
#include <QSurfaceFormat>                           // for QSurfaceFormat
#include <QUrl>                                     // for QUrl
#include <QVariant>                                 // for QVariant
#include <QWheelEvent>                              // for QWheelEvent
#include <QtCore>                                   // for SortOrder, Connec...
#include <QtGui>                                    // for QBrush
#include <iterator>                                 // for back_insert_iterator
#include <memory>                                   // for make_unique, uniq...
#include "plugins/correlation/columnannotation.h"   // for ColumnAnnotation
#include "shared/commands/icommandmanager.h"        // for ExecutePolicy
#include "shared/graph/igraphmodel.h"               // for VisualChangeFlags
#include "shared/utils/statistics.h"                // for medianOf

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot.cpp should remove these lines:
- #include <QDesktopServices>  // lines 36-36
- #include <QSet>  // lines 37-37
- #include <QtGlobal>  // lines 40-40
- #include "qcpcolumnannotations.h"  // lines 24-24
- #include "shared/utils/color.h"  // lines 30-30
- #include "shared/utils/random.h"  // lines 29-29
- #include "shared/utils/utils.h"  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot.cpp:
#include "correlationplot.h"
#include <qassert.h>                                // for Q_ASSERT
#include <qtenvironmentvariables.h>                 // for qEnvironmentVaria...
#include <QDebug>                                   // for QDebug
#include <QEvent>                                   // for QEvent
#include <QFileInfo>                                // for QFileInfo
#include <QHoverEvent>                              // for QHoverEvent
#include <QImage>                                   // for QImage
#include <QMargins>                                 // for QMargins
#include <QMessageLogger>                           // for qDebug
#include <QMetaObject>                              // for argument, Q_ARG
#include <QMouseEvent>                              // for QMouseEvent
#include <QOffscreenSurface>                        // for QOffscreenSurface
#include <QPainter>                                 // for QPainter
#include <QPen>                                     // for QPen
#include <QQuickItem>                               // for QQuickItem
#include <QQuickWindow>                             // for QQuickWindow
#include <QRect>                                    // for QRect
#include <QRectF>                                   // for QRectF
#include <QRegularExpression>                       // for QRegularExpression
#include <QRgb>                                     // for qAlpha, qGray, QRgb
#include <QSharedPointer>                           // for QSharedPointer
#include <QSize>                                    // for QSize
#include <QStringLiteral>                           // for qMakeStringPrivate
#include <QSurfaceFormat>                           // for QSurfaceFormat
#include <QUrl>                                     // for QUrl
#include <QVariant>                                 // for QVariant
#include <QWheelEvent>                              // for QWheelEvent
#include <QtCore>                                   // for SortOrder, Connec...
#include <QtGui>                                    // for QBrush
#include <algorithm>                                // for max, min, any_of
#include <cmath>                                    // for round
#include <iterator>                                 // for back_insert_iterator
#include <map>                                      // for map, operator==
#include <memory>                                   // for make_unique, uniq...
#include <numeric>                                  // for iota
#include <vector>                                   // for vector, operator==
#include "correlationplotsaveimagecommand.h"        // for CorrelationPlotSa...
#include "plugins/correlation/columnannotation.h"   // for ColumnAnnotation
#include "plugins/correlation/correlationplugin.h"  // for CorrelationPlugin...
#include "shared/commands/icommandmanager.h"        // for ExecutePolicy
#include "shared/graph/igraphmodel.h"               // for VisualChangeFlags
#include "shared/utils/container.h"                 // for containsAllOf
#include "shared/utils/fatalerror.h"                // for FATAL_ERROR
#include "shared/utils/flags.h"                     // for Flags
#include "shared/utils/scope_exit.h"                // for make_scope_exit
#include "shared/utils/statistics.h"                // for medianOf
#include "shared/utils/string.h"                    // for numericCompare
#include "shared/utils/thread.h"                    // for setCurrentThreadName
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_columnannotations.cpp should add these lines:
#include <qassert.h>                                // for Q_ASSERT
#include <qcustomplot.h>                            // for QCPAxisRect, QCPAxis
#include <qtmetamacros.h>                           // for emit
#include <stddef.h>                                 // for size_t
#include <QColor>                                   // for QColor
#include <QFlags>                                   // for QFlags
#include <QList>                                    // for QList
#include <QMap>                                     // for QMap
#include <QMargins>                                 // for QMargins
#include <QMouseEvent>                              // for QMouseEvent
#include <QPen>                                     // for QPen
#include <QPoint>                                   // for QPoint
#include <QPointF>                                  // for QPointF, operator-
#include <QRect>                                    // for QRect
#include <QSharedPointer>                           // for QSharedPointer
#include <QString>                                  // for QString, operator<
#include <QStringList>                              // for QStringList
#include <QVariant>                                 // for QVariant
#include <QVector>                                  // for QVector
#include <Qt>                                       // for GlobalColor, Sort...
#include <QtWidgets/QWidget>                        // for QWIDGETSIZE_MAX
#include <algorithm>                                // for equal, all_of, max
#include <functional>                               // for less
#include <iterator>                                 // for back_insert_iterator
#include <limits>                                   // for numeric_limits
#include <set>                                      // for set, operator==
#include <utility>                                  // for as_const, move, pair
#include <vector>                                   // for vector, allocator
#include "plugins/correlation/columnannotation.h"   // for ColumnAnnotation
#include "plugins/correlation/correlationplugin.h"  // for CorrelationPlugin...
#include "shared/utils/qmlenum.h"                   // for normaliseQmlEnum

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_columnannotations.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_columnannotations.cpp:
#include <qassert.h>                                // for Q_ASSERT
#include <qcustomplot.h>                            // for QCPAxisRect, QCPAxis
#include <qtmetamacros.h>                           // for emit
#include <stddef.h>                                 // for size_t
#include <QColor>                                   // for QColor
#include <QFlags>                                   // for QFlags
#include <QList>                                    // for QList
#include <QMap>                                     // for QMap
#include <QMargins>                                 // for QMargins
#include <QMouseEvent>                              // for QMouseEvent
#include <QPen>                                     // for QPen
#include <QPoint>                                   // for QPoint
#include <QPointF>                                  // for QPointF, operator-
#include <QRect>                                    // for QRect
#include <QSharedPointer>                           // for QSharedPointer
#include <QString>                                  // for QString, operator<
#include <QStringList>                              // for QStringList
#include <QVariant>                                 // for QVariant
#include <QVector>                                  // for QVector
#include <Qt>                                       // for GlobalColor, Sort...
#include <QtWidgets/QWidget>                        // for QWIDGETSIZE_MAX
#include <algorithm>                                // for equal, all_of, max
#include <functional>                               // for less
#include <iterator>                                 // for back_insert_iterator
#include <limits>                                   // for numeric_limits
#include <set>                                      // for set, operator==
#include <utility>                                  // for as_const, move, pair
#include <vector>                                   // for vector, allocator
#include "correlationplot.h"                        // for CorrelationPlot
#include "plugins/correlation/columnannotation.h"   // for ColumnAnnotation
#include "plugins/correlation/correlationplugin.h"  // for CorrelationPlugin...
#include "qcpcolumnannotations.h"                   // for QCPColumnAnnotations
#include "shared/utils/container.h"                 // for contains
#include "shared/utils/qmlenum.h"                   // for normaliseQmlEnum
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_discrete.cpp should add these lines:
#include <qcustomplot.h>                               // for QCPAxis, QCPBars
#include <stddef.h>                                    // for size_t
#include <QColor>                                      // for QColor
#include <QList>                                       // for QList
#include <QMetaObject>                                 // for argument, Q_ARG
#include <QPen>                                        // for QPen
#include <QSharedPointer>                              // for QSharedPointer
#include <QString>                                     // for QString, opera...
#include <Qt>                                          // for ConnectionType
#include <algorithm>                                   // for max_element
#include <utility>                                     // for as_const, pair
#include <vector>                                      // for vector
#include "plugins/correlation/correlationplugin.h"     // for CorrelationPlu...
#include "shared/utils/container.h"                    // for keysFor

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_discrete.cpp should remove these lines:
- #include "shared/utils/color.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_discrete.cpp:
#include <qcustomplot.h>                               // for QCPAxis, QCPBars
#include <stddef.h>                                    // for size_t
#include <QColor>                                      // for QColor
#include <QList>                                       // for QList
#include <QMetaObject>                                 // for argument, Q_ARG
#include <QPen>                                        // for QPen
#include <QSharedPointer>                              // for QSharedPointer
#include <QString>                                     // for QString, opera...
#include <Qt>                                          // for ConnectionType
#include <algorithm>                                   // for max_element
#include <map>                                         // for map, operator==
#include <utility>                                     // for as_const, pair
#include <vector>                                      // for vector
#include "correlationplot.h"                           // for CorrelationPlot
#include "plugins/correlation/correlationplugin.h"     // for CorrelationPlu...
#include "shared/ui/visualisations/colorpalette.h"     // for ColorPalette
#include "shared/ui/visualisations/defaultpalettes.h"  // for PALETTE
#include "shared/utils/container.h"                    // for keysFor
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_continuous.cpp should add these lines:
#include <qassert.h>                                // for Q_ASSERT
#include <qcustomplot.h>                            // for QCPGraph, QCPAxis
#include <qtmetamacros.h>                           // for emit
#include <stddef.h>                                 // for size_t
#include <QApplication>                             // for QApplication
#include <QColor>                                   // for QColor
#include <QList>                                    // for QList
#include <QMap>                                     // for QMap
#include <QMetaObject>                              // for argument, Q_ARG
#include <QObject>                                  // for QObject
#include <QPalette>                                 // for QPalette
#include <QPen>                                     // for QPen
#include <QSharedPointer>                           // for QSharedPointer
#include <QString>                                  // for QString, operator!=
#include <QVector>                                  // for QVector
#include <Qt>                                       // for PenStyle, Connect...
#include <QtGui>                                    // for QBrush
#include <algorithm>                                // for max, min, nth_ele...
#include <cmath>                                    // for sqrt, exp, log
#include <iterator>                                 // for back_insert_iterator
#include <limits>                                   // for numeric_limits
#include <numeric>                                  // for iota, accumulate
#include <set>                                      // for set
#include <utility>                                  // for as_const, pair, move
#include <vector>                                   // for vector
#include "shared/utils/qmlenum.h"                   // for normaliseQmlEnum
#include "shared/utils/string.h"                    // for toNumber

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_continuous.cpp should remove these lines:
- #include "qcpcolumnannotations.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplot_continuous.cpp:
#include <qassert.h>                                // for Q_ASSERT
#include <qcustomplot.h>                            // for QCPGraph, QCPAxis
#include <qtmetamacros.h>                           // for emit
#include <stddef.h>                                 // for size_t
#include <QApplication>                             // for QApplication
#include <QColor>                                   // for QColor
#include <QList>                                    // for QList
#include <QMap>                                     // for QMap
#include <QMetaObject>                              // for argument, Q_ARG
#include <QObject>                                  // for QObject
#include <QPalette>                                 // for QPalette
#include <QPen>                                     // for QPen
#include <QSharedPointer>                           // for QSharedPointer
#include <QString>                                  // for QString, operator!=
#include <QVector>                                  // for QVector
#include <Qt>                                       // for PenStyle, Connect...
#include <QtGui>                                    // for QBrush
#include <algorithm>                                // for max, min, nth_ele...
#include <cmath>                                    // for sqrt, exp, log
#include <iterator>                                 // for back_insert_iterator
#include <limits>                                   // for numeric_limits
#include <numeric>                                  // for iota, accumulate
#include <set>                                      // for set
#include <utility>                                  // for as_const, pair, move
#include <vector>                                   // for vector
#include "correlationplot.h"                        // for CorrelationPlot
#include "plugins/correlation/correlationplugin.h"  // for CorrelationPlugin...
#include "shared/utils/container_randomsample.h"    // for randomSample
#include "shared/utils/qmlenum.h"                   // for normaliseQmlEnum
#include "shared/utils/statistics.h"                // for medianOf
#include "shared/utils/string.h"                    // for toNumber
---


(/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtype.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtype.cpp should add these lines:
#include <bits/std_abs.h>  // for abs

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtype.cpp should remove these lines:
- #include <cmath>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtype.cpp:
#include "correlationtype.h"
#include <bits/std_abs.h>  // for abs
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtabulardataparser.h should add these lines:
#include <qqmlintegration.h>                            // for QML_ELEMENT
#include <qtmetamacros.h>                               // for Q_PROPERTY
#include <stddef.h>                                     // for size_t
#include <QMap>                                         // for QMap
#include <QObject>                                      // for QObject
#include <utility>                                      // for pair
#include "shared/utils/progressable.h"                  // for Progressable
class QAbstractTableModel;
class QUrl;
class TabularData;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtabulardataparser.h should remove these lines:
- #include <QQmlEngine>  // lines 34-34
- #include <QtConcurrentRun>  // lines 38-38
- #include "plugins/correlation/correlationtype.h"  // lines 31-31
- #include "shared/graph/edgelist.h"  // lines 29-29
- #include "shared/loading/iparser.h"  // lines 22-22
- #include "shared/loading/tabulardata.h"  // lines 23-23
- #include "shared/utils/qmlenum.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtabulardataparser.h:
#include <qqmlintegration.h>                            // for QML_ELEMENT
#include <qtmetamacros.h>                               // for Q_PROPERTY
#include <stddef.h>                                     // for size_t
#include <QFutureWatcher>                               // for QFutureWatcher
#include <QMap>                                         // for QMap
#include <QObject>                                      // for QObject
#include <QRect>                                        // for QRect
#include <QString>                                      // for QString
#include <QVariantMap>                                  // for QVariantMap
#include <atomic>                                       // for atomic
#include <memory>                                       // for shared_ptr
#include <utility>                                      // for pair
#include "plugins/correlation/correlationdatavector.h"  // for ContinuousDat...
#include "shared/loading/tabulardatamodel.h"            // for TabularDataModel
#include "shared/utils/cancellable.h"                   // for Cancellable
#include "shared/utils/progressable.h"                  // for Progressable
class QAbstractTableModel;
class QUrl;
class TabularData;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtabulardataparser.cpp should add these lines:
#include <qassert.h>                                            // for Q_ASSERT
#include <QDebug>                                               // for QDebug
#include <QFuture>                                              // for QFuture
#include <QMessageLogger>                                       // for qDebug
#include <QUrl>                                                 // for QUrl
#include <QVariant>                                             // for QVariant
#include <QtConcurrentRun>                                      // for run
#include <algorithm>                                            // for max, min
#include <numeric>                                              // for iota
#include "correlationtype.h"                                    // for Corre...
#include "plugins/correlation/loading/correlationfileparser.h"  // for Corre...
#include "shared/graph/edgelist.h"                              // for EdgeList
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/utils/qmlenum.h"                               // for norma...
class QAbstractTableModel;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtabulardataparser.cpp should remove these lines:
- #include <span>  // lines 42-42
- #include "plugins/correlation/correlationplugin.h"  // lines 22-22
- #include "shared/graph/igraphmodel.h"  // lines 24-24
- #include "shared/graph/imutablegraph.h"  // lines 25-25
- #include "shared/utils/container.h"  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationtabulardataparser.cpp:
#include "correlationtabulardataparser.h"
#include <qassert.h>                                            // for Q_ASSERT
#include <QDebug>                                               // for QDebug
#include <QFuture>                                              // for QFuture
#include <QMessageLogger>                                       // for qDebug
#include <QRect>                                                // for QRect
#include <QUrl>                                                 // for QUrl
#include <QVariant>                                             // for QVariant
#include <QtConcurrentRun>                                      // for run
#include <algorithm>                                            // for max, min
#include <limits>                                               // for numer...
#include <numeric>                                              // for iota
#include <set>                                                  // for set
#include <utility>                                              // for pair
#include <vector>                                               // for vector
#include "correlationtype.h"                                    // for Corre...
#include "plugins/correlation/correlation.h"                    // for Conti...
#include "plugins/correlation/loading/correlationfileparser.h"  // for Corre...
#include "shared/graph/edgelist.h"                              // for EdgeList
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/loading/graphsizeestimate.h"                   // for graph...
#include "shared/loading/tabulardata.h"                         // for Tabul...
#include "shared/loading/xlsxtabulardataparser.h"               // for XlsxT...
#include "shared/utils/container_randomsample.h"                // for rando...
#include "shared/utils/qmlenum.h"                               // for norma...
#include "shared/utils/scope_exit.h"                            // for make_...
#include "shared/utils/string.h"                                // for isNum...
class QAbstractTableModel;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/importannotationskeydetection.h should add these lines:
#include <qqmlintegration.h>           // for QML_ELEMENT
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QMap>                        // for QMap
#include <memory>                      // for shared_ptr
class CorrelationPluginInstance;
class TabularData;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/importannotationskeydetection.h should remove these lines:
- #include <QQmlEngine>  // lines 28-28
- #include "plugins/correlation/correlationplugin.h"  // lines 22-22
- #include "shared/loading/tabulardata.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/importannotationskeydetection.h:
#include <qqmlintegration.h>           // for QML_ELEMENT
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFutureWatcher>              // for QFutureWatcher
#include <QMap>                        // for QMap
#include <QObject>                     // for QObject
#include <QVariantMap>                 // for QVariantMap
#include <memory>                      // for shared_ptr
#include "shared/utils/cancellable.h"  // for Cancellable
class CorrelationPluginInstance;
class TabularData;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/importannotationskeydetection.cpp should add these lines:
#include <stddef.h>                                 // for size_t
#include <QList>                                    // for QList
#include <QString>                                  // for QString, operator...
#include <QStringList>                              // for QStringList
#include <vector>                                   // for vector
#include "shared/loading/tabulardata.h"             // for TabularData
#include "shared/utils/typeidentity.h"              // for TypeIdentity

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/importannotationskeydetection.cpp should remove these lines:
- #include <QQmlEngine>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/importannotationskeydetection.cpp:
#include "importannotationskeydetection.h"
#include <stddef.h>                                 // for size_t
#include <QFuture>                                  // for QFuture
#include <QList>                                    // for QList
#include <QString>                                  // for QString, operator...
#include <QStringList>                              // for QStringList
#include <QtConcurrentRun>                          // for run
#include <vector>                                   // for vector
#include "plugins/correlation/correlationplugin.h"  // for CorrelationPlugin...
#include "shared/loading/tabulardata.h"             // for TabularData
#include "shared/utils/typeidentity.h"              // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/graphsizeestimateplot.h should add these lines:
#include <qqmlintegration.h>       // for QML_ELEMENT
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_OBJECT, signals
#include <QMap>                    // for QMap
#include <QVariantMap>             // for QVariantMap
class QCPItemStraightLine;
class QMouseEvent;
class QQuickItem;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/graphsizeestimateplot.h should remove these lines:
- #include <QObject>  // lines 24-24
- #include <QQmlEngine>  // lines 25-25
- #include <QQuickPaintedItem>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/graphsizeestimateplot.h:
#include <qcustomplotquickitem.h>  // for QCustomPlotQuickItem
#include <qqmlintegration.h>       // for QML_ELEMENT
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_OBJECT, signals
#include <QMap>                    // for QMap
#include <QVariantMap>             // for QVariantMap
#include <QVector>                 // for QVector
class QCPItemStraightLine;
class QMouseEvent;
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/graphsizeestimateplot.cpp should add these lines:
#include <bits/std_abs.h>                   // for abs
#include <qcustomplot.h>                    // for QCustomPlot, QCPAxis, QCP...
#include <stddef.h>                         // for size_t
#include <QColor>                           // for QColor
#include <QList>                            // for QList
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QSharedPointer>                   // for QSharedPointer
#include <QString>                          // for operator""_s, QString
#include <QStyleHints>                      // for QStyleHints
#include <QVariant>                         // for QVariant
#include <Qt>                               // for MouseButton, AlignmentFlag
#include <QtGui>                            // for QBrush
#include <cmath>                            // for round
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
class QQuickItem;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/graphsizeestimateplot.cpp should remove these lines:
- #include "shared/utils/utils.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/graphsizeestimateplot.cpp:
#include "graphsizeestimateplot.h"
#include <bits/std_abs.h>                   // for abs
#include <qcustomplot.h>                    // for QCustomPlot, QCPAxis, QCP...
#include <stddef.h>                         // for size_t
#include <QColor>                           // for QColor
#include <QGuiApplication>                  // for QGuiApplication
#include <QList>                            // for QList
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QSharedPointer>                   // for QSharedPointer
#include <QString>                          // for operator""_s, QString
#include <QStyleHints>                      // for QStyleHints
#include <QVariant>                         // for QVariant
#include <QVariantMap>                      // for QVariantMap
#include <QVector>                          // for QVector
#include <Qt>                               // for MouseButton, AlignmentFlag
#include <QtGui>                            // for QBrush
#include <algorithm>                        // for clamp, minmax
#include <cmath>                            // for round
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
#include "shared/rendering/multisamples.h"  // for multisamples
#include "shared/utils/string.h"            // for formatNumberSIPostfix
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplotsaveimagecommand.h should add these lines:
#include <qtmetamacros.h>                   // for Q_OBJECT, signals, slots
#include <QVector>                          // for QVector

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplotsaveimagecommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplotsaveimagecommand.h:
#include <qtmetamacros.h>                   // for Q_OBJECT, signals, slots
#include <QObject>                          // for QObject
#include <QString>                          // for QString
#include <QVector>                          // for QVector
#include <condition_variable>               // for condition_variable
#include <deque>                            // for deque
#include <mutex>                            // for mutex
#include "correlationplot.h"                // for CorrelationPlot
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/utils/deferredexecutor.h"  // for DeferredExecutor
---

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplotsaveimagecommand.cpp should add these lines:
#include <qassert.h>         // for Q_ASSERT
#include <QDir>              // for QDir
#include <Qt>                // for CaseSensitivity
#include <algorithm>         // for copy
#include <iostream>          // for operator<<, basic_ostream, cerr

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplotsaveimagecommand.cpp should remove these lines:
- #include <QtGlobal>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/correlationplotsaveimagecommand.cpp:
#include "correlationplotsaveimagecommand.h"
#include <qassert.h>         // for Q_ASSERT
#include <QDesktopServices>  // for QDesktopServices
#include <QDir>              // for QDir
#include <QFileInfo>         // for QFileInfo
#include <QUrl>              // for QUrl
#include <Qt>                // for CaseSensitivity
#include <algorithm>         // for copy
#include <iostream>          // for operator<<, basic_ostream, cerr
---


/home/runner/work/graphia/graphia/source/app/attributes/attribute.h should add these lines:
#include <QList>                                                  // for QList
#include <QMap>                                                   // for QMap
#include <QMessageLogger>                                         // for qFatal
#include <QStringList>                                            // for QSt...
#include <QVariantMap>                                            // for QVa...
#include <iterator>                                               // for bac...
#include <variant>                                                // for var...
#include "shared/attributes/iattributerange.h"                    // for IAt...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class IGraph;
class IGraphComponent;

/home/runner/work/graphia/graphia/source/app/attributes/attribute.h should remove these lines:
- #include "shared/attributes/valuetype.h"  // lines 30-30
- #include "shared/graph/elementtype.h"  // lines 23-23
- #include "shared/graph/igraphcomponent.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/attribute.h:
#include <QList>                                                  // for QList
#include <QMap>                                                   // for QMap
#include <QMessageLogger>                                         // for qFatal
#include <QString>                                                // for QSt...
#include <QStringList>                                            // for QSt...
#include <QVariantMap>                                            // for QVa...
#include <functional>                                             // for fun...
#include <iterator>                                               // for bac...
#include <limits>                                                 // for num...
#include <map>                                                    // for map
#include <tuple>                                                  // for get
#include <variant>                                                // for var...
#include <vector>                                                 // for vector
#include "shared/attributes/iattribute.h"                         // for IAt...
#include "shared/attributes/iattributerange.h"                    // for IAt...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "shared/utils/flags.h"                                   // for Flags
#include "shared/utils/statistics.h"                              // for Sta...
#include "shared/utils/string.h"                                  // for num...
class Attribute;  // lines 40-40
class IGraph;
class IGraphComponent;
---

/home/runner/work/graphia/graphia/source/app/attributes/attribute.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <qlatin1stringview.h>       // for operator""_L1
#include <QObject>                   // for QObject
#include "shared/graph/igraph.h"     // for IEdge, IGraph
class IGraphComponent;

/home/runner/work/graphia/graphia/source/app/attributes/attribute.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/attribute.cpp:
#include "attribute.h"
#include <qassert.h>                 // for Q_ASSERT
#include <qlatin1stringview.h>       // for operator""_L1
#include <QDebug>                    // for QDebug
#include <QObject>                   // for QObject
#include <QRegularExpression>        // for QRegularExpression
#include "shared/graph/igraph.h"     // for IEdge, IGraph
#include "shared/utils/container.h"  // for contains, indexOf
class IGraphComponent;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/qcpcolumnannotations.h should add these lines:
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QPointF>                                   // for QPointF
#include <QRectF>                                    // for QRectF
class ColumnAnnotation;
class QVariant;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/qcpcolumnannotations.h should remove these lines:
- #include <QRect>  // lines 30-30
- #include "plugins/correlation/columnannotation.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/qcpcolumnannotations.h:
#include <qcustomplot.h>                             // for SignDomain, QCPP...
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QColor>                                    // for QColor
#include <QPointF>                                   // for QPointF
#include <QRectF>                                    // for QRectF
#include <QString>                                   // for QString
#include <map>                                       // for map
#include <vector>                                    // for vector
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
class ColumnAnnotation;
class QVariant;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/qcpcolumnannotations.cpp should add these lines:
#include <qtypes.h>                                     // for qreal
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QFontMetrics>                                 // for QFontMetrics
#include <QPointer>                                     // for QPointer
#include <QRect>                                        // for QRect
#include <Qt>                                           // for AlignmentFlag
#include <algorithm>                                    // for max
#include <utility>                                      // for move, pair
#include "plugins/correlation/columnannotation.h"       // for ColumnAnnotation
class QVariant;

/home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/qcpcolumnannotations.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/ui/qml/app/graphia/Plugins/Correlation/qcpcolumnannotations.cpp:
#include "qcpcolumnannotations.h"
#include <qtypes.h>                                     // for qreal
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QFontMetrics>                                 // for QFontMetrics
#include <QPointer>                                     // for QPointer
#include <QRect>                                        // for QRect
#include <Qt>                                           // for AlignmentFlag
#include <algorithm>                                    // for max
#include <utility>                                      // for move, pair
#include "plugins/correlation/columnannotation.h"       // for ColumnAnnotation
#include "shared/ui/visualisations/defaultgradients.h"  // for GRADIENT
#include "shared/ui/visualisations/defaultpalettes.h"   // for PALETTE
#include "shared/utils/color.h"                         // for contrastingColor
#include "shared/utils/container.h"                     // for contains
class QVariant;
---


/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.h should add these lines:
#include <stddef.h>                // for size_t

/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.h:
#include <stddef.h>                // for size_t
#include <vector>                  // for vector
#include "enrichmenttablemodel.h"  // for EnrichmentTableModel
class ICommand;  // lines 27-27
class IGraphModel;  // lines 26-26
class QString;  // lines 25-25
---

/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.cpp should add these lines:
#include <stdint.h>                            // for uint64_t
#include <QString>                             // for QString, operator<
#include <QVariant>                            // for QVariant
#include <algorithm>                           // for min
#include "attributes/enrichmenttablemodel.h"   // for EnrichmentTableModel
#include "shared/commands/icommand.h"          // for ICommand
#include "shared/graph/elementid.h"            // for NodeId

/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.cpp should remove these lines:
- #include <set>  // lines 22-22
- #include "shared/commands/icommandmanager.h"  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.cpp:
#include "enrichmentcalculator.h"
#include <stdint.h>                            // for uint64_t
#include <QString>                             // for QString, operator<
#include <QVariant>                            // for QVariant
#include <algorithm>                           // for min
#include <array>                               // for array
#include <cmath>                               // for lgamma, sqrt, exp
#include <map>                                 // for map, operator==
#include <random>                              // for random_device, uniform...
#include <vector>                              // for vector
#include "attributes/enrichmenttablemodel.h"   // for EnrichmentTableModel
#include "shared/attributes/iattribute.h"      // for IAttribute
#include "shared/commands/icommand.h"          // for ICommand
#include "shared/graph/elementid.h"            // for NodeId
#include "shared/graph/igraph.h"               // for IGraph
#include "shared/graph/igraphmodel.h"          // for IGraphModel
#include "shared/utils/container.h"            // for keysFor
#include "shared/utils/msvcwarningsuppress.h"  // for MSVC_WARNING_SUPPRESS_...
---


/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.h should add these lines:
#include <qtmetamacros.h>       // for Q_PROPERTY, Q_ENUM, Q_OBJECT, signals
#include <stddef.h>             // for size_t
#include <QByteArray>           // for QByteArray
#include <QModelIndex>          // for QModelIndex
#include <QString>              // for QString
#include <QVariant>             // for QVariant
#include <QtCore>               // for QHash, ItemDataRole

/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.h should remove these lines:
- #include <QObject>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.h:
#include <qtmetamacros.h>       // for Q_PROPERTY, Q_ENUM, Q_OBJECT, signals
#include <stddef.h>             // for size_t
#include <QAbstractTableModel>  // for QAbstractTableModel
#include <QByteArray>           // for QByteArray
#include <QModelIndex>          // for QModelIndex
#include <QString>              // for QString
#include <QVariant>             // for QVariant
#include <QtCore>               // for QHash, ItemDataRole
#include <vector>               // for vector
---

/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.cpp should add these lines:
#include <qassert.h>                // for Q_ASSERT
#include <qcompare.h>               // for QPartialOrdering, operator==
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QMetaType>                // for QMetaType
#include <algorithm>                // for sort
#include <numeric>                  // for iota
#include <utility>                  // for move, swap

/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.cpp should remove these lines:
- #include <QDebug>  // lines 25-25
- #include <QQmlEngine>  // lines 24-24
- #include "enrichmentcalculator.h"  // lines 20-20

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.cpp:
#include "enrichmenttablemodel.h"
#include <qassert.h>                // for Q_ASSERT
#include <qcompare.h>               // for QPartialOrdering, operator==
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QMetaType>                // for QMetaType
#include <algorithm>                // for sort
#include <numeric>                  // for iota
#include <utility>                  // for move, swap
#include "shared/utils/string.h"    // for numericCompare
---


/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.h should add these lines:
#include <QList>                                                // for QList
#include <QMessageLogger>                                       // for qFatal
#include <QString>                                              // for QString
#include <boost/variant/detail/apply_visitor_unary.hpp>         // for apply...
#include <functional>                                           // for opera...
#include <utility>                                              // for move
#include <variant>                                              // for visit
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
class EdgeId;
class IGraphComponent;
class NodeId;

/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24
- #include "shared/graph/igraphcomponent.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.h:
#include <QList>                                                // for QList
#include <QMessageLogger>                                       // for qFatal
#include <QRegularExpression>                                   // for QRegu...
#include <QString>                                              // for QString
#include <algorithm>                                            // for any_of
#include <boost/variant/detail/apply_visitor_unary.hpp>         // for apply...
#include <boost/variant/static_visitor.hpp>                     // for stati...
#include <functional>                                           // for opera...
#include <utility>                                              // for move
#include <variant>                                              // for visit
#include "app/graph/graphmodel.h"                               // for Graph...
#include "app/transform/graphtransformconfig.h"                 // for Graph...
#include "app/transform/graphtransformconfigparser.h"           // for Graph...
#include "attribute.h"                                          // for Attri...
#include "condtionfnops.h"                                      // for String
#include "shared/graph/elementid_containers.h"                  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
class EdgeId;
class IGraphComponent;
class NodeId;
---

/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.cpp should add these lines:
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
class GraphModel;

/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.cpp:
#include "conditionfncreator.h"
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
class GraphModel;
---


/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.h should add these lines:
#include <QList>                       // for QList
#include <QString>                     // for QString

/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24
- #include "shared/graph/elementid_containers.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.h:
#include <QList>                       // for QList
#include <QString>                     // for QString
#include <QStringList>                 // for QStringList
#include "shared/commands/icommand.h"  // for ICommand
class Document;  // lines 30-30
class GraphModel;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.cpp should add these lines:
#include <qassert.h>                      // for Q_ASSERT
#include "ui/qml/app/graphia/document.h"  // for Document

/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.cpp should remove these lines:
- #include "app/ui/document.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.cpp:
#include "applytransformscommand.h"
#include <qassert.h>                      // for Q_ASSERT
#include <QObject>                        // for QObject
#include <QSet>                           // for QSet
#include <algorithm>                      // for all_of
#include <utility>                        // for move, as_const
#include "app/graph/graphmodel.h"         // for GraphModel
#include "ui/qml/app/graphia/document.h"  // for Document
---


/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.h should add these lines:
#include <QList>                       // for QList
#include <QString>                     // for QString

/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.h:
#include <QList>                       // for QList
#include <QString>                     // for QString
#include <QStringList>                 // for QStringList
#include "shared/commands/icommand.h"  // for ICommand
class Document;  // lines 29-29
class GraphModel;  // lines 28-28
---

/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.cpp should add these lines:
#include <qassert.h>                                          // for Q_ASSERT
#include <vector>                                             // for vector
#include "ui/qml/app/graphia/document.h"                      // for Document
#include "ui/visualisations/visualisationconfig.h"            // for Visuali...

/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.cpp should remove these lines:
- #include "app/ui/document.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.cpp:
#include "applyvisualisationscommand.h"
#include <qassert.h>                                          // for Q_ASSERT
#include <QObject>                                            // for QObject
#include <QRegularExpression>                                 // for QRegula...
#include <QSet>                                               // for QSet
#include <utility>                                            // for move
#include <vector>                                             // for vector
#include "app/graph/graphmodel.h"                             // for GraphModel
#include "app/ui/visualisations/visualisationconfigparser.h"  // for Visuali...
#include "ui/qml/app/graphia/document.h"                      // for Document
#include "ui/visualisations/visualisationconfig.h"            // for Visuali...
---


/home/runner/work/graphia/graphia/source/app/commands/commandmanager.h should add these lines:
#include <qassert.h>                          // for Q_ASSERT
#include <qtmetamacros.h>                     // for Q_PROPERTY, emit, slots
#include <utility>                            // for move, forward
#include "shared/commands/icommand.h"         // for ICommandPtr, ICommand
class QTimerEvent;

/home/runner/work/graphia/graphia/source/app/commands/commandmanager.h should remove these lines:
- #include <QtGlobal>  // lines 25-25
- #include <functional>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/commandmanager.h:
#include <qassert.h>                          // for Q_ASSERT
#include <qtmetamacros.h>                     // for Q_PROPERTY, emit, slots
#include <QObject>                            // for QObject
#include <QString>                            // for QString
#include <atomic>                             // for atomic_bool
#include <deque>                              // for deque
#include <memory>                             // for operator==, default_delete
#include <mutex>                              // for recursive_mutex
#include <thread>                             // for thread
#include <utility>                            // for move, forward
#include <vector>                             // for vector
#include "shared/commands/icommand.h"         // for ICommandPtr, ICommand
#include "shared/commands/icommandmanager.h"  // for ICommandManager, Execut...
#include "shared/utils/fatalerror.h"          // for FATAL_ERROR
class Graph;  // lines 37-37
class QTimerEvent;
---

/home/runner/work/graphia/graphia/source/app/commands/commandmanager.cpp should add these lines:
#include <qtenvironmentvariables.h>                // for qEnvironmentVariab...
#include <stddef.h>                                // for size_t
#include <QMessageLogger>                          // for qDebug
#include <QVariant>                                // for QVariant
#include <algorithm>                               // for copy
#include <type_traits>                             // for remove_reference
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
class QTimerEvent;

/home/runner/work/graphia/graphia/source/app/commands/commandmanager.cpp should remove these lines:
- #include "app/preferences.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/commandmanager.cpp:
#include "commandmanager.h"
#include <qtenvironmentvariables.h>                // for qEnvironmentVariab...
#include <stddef.h>                                // for size_t
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug
#include <QVariant>                                // for QVariant
#include <algorithm>                               // for copy
#include <thread>                                  // for thread
#include <type_traits>                             // for remove_reference
#include "shared/utils/thread.h"                   // for setCurrentThreadName
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
class QTimerEvent;
---


(/home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.cpp should add these lines:
#include <qassert.h>                                            // for Q_ASSERT
#include <QObject>                                              // for QObject
#include <type_traits>                                          // for remov...
#include "attributes/attribute.h"                               // for Attri...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
class EdgeId;
class NodeId;
template <typename E> class UserElementData;

/home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.cpp should remove these lines:
- #include "shared/loading/userdatavector.h"  // lines 27-27
- #include "shared/loading/userelementdata.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.cpp:
#include "cloneattributecommand.h"
#include <qassert.h>                                            // for Q_ASSERT
#include <QObject>                                              // for QObject
#include <type_traits>                                          // for remov...
#include "app/graph/graph.h"                                    // for Graph
#include "app/graph/graphmodel.h"                               // for Graph...
#include "attributes/attribute.h"                               // for Attri...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/utils/string.h"                                // for findU...
class EdgeId;
class NodeId;
template <typename E> class UserElementData;
---


/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.h should add these lines:
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType

/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.h should remove these lines:
- #include "shared/attributes/valuetype.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/editattributecommand.h:
#include <QString>                                            // for QString
#include "app/attributes/attributeedits.h"                    // for Attribu...
#include "shared/commands/icommand.h"                         // for ICommand
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
class GraphModel;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.cpp should add these lines:
#include <qassert.h>                                            // for Q_ASSERT
#include <QObject>                                              // for QObject
#include <map>                                                  // for opera...
#include <type_traits>                                          // for enabl...
#include "attributes/attribute.h"                               // for Attri...
#include "attributes/attributeedits.h"                          // for Attri...
#include "shared/graph/elementid.h"                             // for EdgeId
#include "shared/graph/elementid_containers.h"                  // for EdgeI...
#include "shared/loading/userdatavector.h"                      // for UserD...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...

/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.cpp should remove these lines:
- #include "shared/attributes/valuetype.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/editattributecommand.cpp:
#include "editattributecommand.h"
#include <qassert.h>                                            // for Q_ASSERT
#include <QObject>                                              // for QObject
#include <QVariant>                                             // for QVariant
#include <map>                                                  // for opera...
#include <type_traits>                                          // for enabl...
#include "app/graph/graphmodel.h"                               // for Graph...
#include "attributes/attribute.h"                               // for Attri...
#include "attributes/attributeedits.h"                          // for Attri...
#include "shared/graph/elementid.h"                             // for EdgeId
#include "shared/graph/elementid_containers.h"                  // for EdgeI...
#include "shared/loading/userdatavector.h"                      // for UserD...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
---


/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.h should add these lines:
#include <QString>                              // for QString
#include "shared/graph/elementid_containers.h"  // for NodeIdSet

/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.h:
#include <QString>                              // for QString
#include <vector>                               // for vector
#include "app/graph/graph.h"                    // for Edge
#include "shared/commands/icommand.h"           // for ICommand
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class GraphModel;  // lines 28-28
class SelectionManager;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.cpp should add these lines:
#include <map>                           // for operator==
#include <utility>                       // for move
#include "graph/graph.h"                 // for Edge
#include "shared/graph/imutablegraph.h"  // for IMutableGraph

/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.cpp:
#include "deletenodescommand.h"
#include <QObject>                       // for QObject
#include <map>                           // for operator==
#include <utility>                       // for move
#include "app/graph/graphmodel.h"        // for GraphModel
#include "app/graph/mutablegraph.h"      // for MutableGraph
#include "app/ui/selectionmanager.h"     // for SelectionManager
#include "graph/graph.h"                 // for Edge
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
---


/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.h should add these lines:
#include <QList>                                              // for QList
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType

/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.h should remove these lines:
- #include "shared/attributes/valuetype.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.h:
#include <QList>                                              // for QList
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include <map>                                                // for map
#include <vector>                                             // for vector
#include "shared/commands/icommand.h"                         // for ICommand
#include "shared/loading/userdatavector.h"                    // for UserDat...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
class GraphModel;  // lines 33-33
---

/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.cpp should add these lines:
#include <qassert.h>                                            // for Q_ASSERT
#include <QObject>                                              // for QObject
#include <utility>                                              // for move
#include "attributes/attribute.h"                               // for Attri...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...

/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.cpp should remove these lines:
- #include "shared/loading/userelementdata.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.cpp:
#include "removeattributescommand.h"
#include <qassert.h>                                            // for Q_ASSERT
#include <QObject>                                              // for QObject
#include <algorithm>                                            // for trans...
#include <iterator>                                             // for back_...
#include <utility>                                              // for move
#include "app/graph/graphmodel.h"                               // for Graph...
#include "attributes/attribute.h"                               // for Attri...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
---


/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.h should add these lines:
#include <stddef.h>                         // for size_t

/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/importattributescommand.h:
#include <stddef.h>                         // for size_t
#include <QString>                          // for QString
#include <set>                              // for set
#include <vector>                           // for vector
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/loading/tabulardata.h"     // for TabularData
#include "shared/loading/userdatavector.h"  // for UserDataVector
class GraphModel;  // lines 32-32
---

/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.cpp should add these lines:
#include <qassert.h>                                            // for Q_ASSERT
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <map>                                                  // for map
#include <type_traits>                                          // for remov...
#include <utility>                                              // for move
#include "attributes/attribute.h"                               // for Attri...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/utils/typeidentity.h"                          // for TypeI...
class EdgeId;
class NodeId;
template <typename E> class UserElementData;

/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.cpp should remove these lines:
- #include "shared/loading/userelementdata.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/importattributescommand.cpp:
#include "importattributescommand.h"
#include <qassert.h>                                            // for Q_ASSERT
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <map>                                                  // for map
#include <type_traits>                                          // for remov...
#include <utility>                                              // for move
#include "../crashhandler.h"                                    // for Crash...
#include "app/graph/graphmodel.h"                               // for Graph...
#include "app/graph/mutablegraph.h"                             // for Mutab...
#include "attributes/attribute.h"                               // for Attri...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/utils/string.h"                                // for findU...
#include "shared/utils/typeidentity.h"                          // for TypeI...
class EdgeId;
class NodeId;
template <typename E> class UserElementData;
---


/home/runner/work/graphia/graphia/source/app/graph/componentmanager.h should add these lines:
#include <qassert.h>                            // for Q_ASSERT
#include <qtmetamacros.h>                       // for Q_OBJECT, signals, slots
#include <stddef.h>                             // for size_t
#include <map>                                  // for operator==
#include <unordered_set>                        // for unordered_set
#include <utility>                              // for move
#include "graph/graphcomponent.h"               // for GraphComponent
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
class IGraphArray;

/home/runner/work/graphia/graphia/source/app/graph/componentmanager.h should remove these lines:
- #include <QtGlobal>  // lines 35-35
- #include <functional>  // lines 30-30
- class GraphComponent;  // lines 38-38

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/componentmanager.h:
#include <qassert.h>                            // for Q_ASSERT
#include <qtmetamacros.h>                       // for Q_OBJECT, signals, slots
#include <stddef.h>                             // for size_t
#include <QObject>                              // for QObject
#include <algorithm>                            // for any_of
#include <map>                                  // for operator==
#include <memory>                               // for unique_ptr
#include <mutex>                                // for mutex, recursive_mutex
#include <queue>                                // for queue
#include <unordered_set>                        // for unordered_set
#include <utility>                              // for move
#include <vector>                               // for vector
#include "graph/graphcomponent.h"               // for GraphComponent
#include "graphfilter.h"                        // for GraphFilter
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
#include "shared/graph/elementid_containers.h"  // for ComponentIdSet, EdgeC...
#include "shared/graph/grapharray.h"            // for EdgeArray, NodeArray
class Graph;  // lines 37-37
class IGraphArray;
---

/home/runner/work/graphia/graphia/source/app/graph/componentmanager.cpp should add these lines:
#include <bits/chrono.h>                           // for system_clock, dura...
#include <qtenvironmentvariables.h>                // for qEnvironmentVariab...
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <Qt>                                      // for ConnectionType
#include <compare>                                 // for operator<, strong_...
#include <iterator>                                // for insert_iterator
#include <set>                                     // for set, erase_if
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/graph/igraph.h"                   // for IEdge
#include "shared/graph/igrapharray.h"              // for IGraphArray

/home/runner/work/graphia/graphia/source/app/graph/componentmanager.cpp should remove these lines:
- #include <chrono>  // lines 525-525
- #include "shared/utils/container.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/componentmanager.cpp:
#include "componentmanager.h"
#include <bits/chrono.h>                           // for system_clock, dura...
#include <qtenvironmentvariables.h>                // for qEnvironmentVariab...
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <Qt>                                      // for ConnectionType
#include <compare>                                 // for operator<, strong_...
#include <iterator>                                // for insert_iterator
#include <map>                                     // for operator==, _Rb_tr...
#include <queue>                                   // for queue
#include <set>                                     // for set, erase_if
#include "graph.h"                                 // for Graph
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graphcomponent.h"                        // for GraphComponent
#include "shared/graph/elementid_debug.h"          // for operator<<
#include "shared/graph/igraph.h"                   // for IEdge
#include "shared/graph/igrapharray.h"              // for IGraphArray
#include "shared/utils/thread.h"                   // for currentThreadName
---


/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, slots

/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.h:
#include <qtmetamacros.h>  // for Q_OBJECT, slots
#include <QObject>         // for QObject
class Graph;  // lines 24-24
---

/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.cpp should add these lines:
#include <QDebug>                          // for QDebug
#include <QMessageLogger>                  // for qDebug
#include <Qt>                              // for ConnectionType
#include <vector>                          // for vector
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.cpp should remove these lines:
- #include "componentmanager.h"  // lines 22-22
- #include "graphcomponent.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.cpp:
#include "graphconsistencychecker.h"
#include <QDebug>                          // for QDebug
#include <QMessageLogger>                  // for qDebug
#include <Qt>                              // for ConnectionType
#include <vector>                          // for vector
#include "graph.h"                         // for Graph
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/elementid_debug.h"  // for operator<<
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/container.h"        // for contains
---


/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.h should add these lines:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <cstddef>                                 // for size_t
#include "graph/elementiddistinctsetcollection.h"  // for EdgeIdDistinctSets
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"     // for EdgeIdSet
class IEdge;
class INode;

/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/mutablegraph.h:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <cstddef>                                 // for size_t
#include <deque>                                   // for deque
#include <map>                                     // for map
#include <mutex>                                   // for mutex, unique_lock
#include <vector>                                  // for vector
#include "graph.h"                                 // for Edge, Node, Graph
#include "graph/elementiddistinctsetcollection.h"  // for EdgeIdDistinctSets
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"     // for EdgeIdSet
#include "shared/graph/imutablegraph.h"            // for IMutableGraph
#include "shared/graph/undirectededge.h"           // for UndirectedEdge
class IEdge;
class INode;
---

/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <algorithm>                 // for copy, min_element, fill, max
#include <compare>                   // for operator<, strong_ordering, oper...
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <utility>                   // for pair
#include "graph/graph.h"             // for Node, Edge, Graph
#include "shared/graph/igraph.h"     // for IEdge, INode

/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/mutablegraph.cpp:
#include "mutablegraph.h"
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <algorithm>                 // for copy, min_element, fill, max
#include <compare>                   // for operator<, strong_ordering, oper...
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <utility>                   // for pair
#include "componentmanager.h"        // for ComponentManager
#include "graph/graph.h"             // for Node, Edge, Graph
#include "graphcomponent.h"          // for GraphComponent
#include "shared/graph/igraph.h"     // for IEdge, INode
#include "shared/utils/container.h"  // for contains
---



/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT
class IGraphComponent;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/centreinglayout.h:
#include <qtmetamacros.h>  // for Q_OBJECT
#include "layout.h"        // for Layout
class IGraphComponent;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.cpp should add these lines:
#include <QVector3D>                 // for QVector3D, operator-
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/centreinglayout.cpp:
#include "centreinglayout.h"
#include <QVector3D>                 // for QVector3D, operator-
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId
---


/home/runner/work/graphia/graphia/source/app/headless.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals, slots
#include <QString>         // for QString
#include <QStringList>     // for QStringList

/home/runner/work/graphia/graphia/source/app/headless.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/headless.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals, slots
#include <QObject>         // for QObject
#include <QString>         // for QString
#include <QStringList>     // for QStringList
#include <memory>          // for unique_ptr
struct HeadlessState;  // lines 27-27
---

/home/runner/work/graphia/graphia/source/app/headless.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <QByteArray>                        // for QByteArray
#include <QList>                             // for QList
#include <QMap>                              // for QMap
#include <QUrl>                              // for QUrl
#include <QVariant>                          // for QVariant
#include <iostream>                          // for basic_ostream, operator<<
#include <json.hpp>                          // for iter_impl, iteration_pro...
#include <string>                            // for char_traits, operator<<
#include "ui/qml/app/graphia/application.h"  // for Application
#include "ui/qml/app/graphia/document.h"     // for Document

/home/runner/work/graphia/graphia/source/app/headless.cpp should remove these lines:
- #include "app/application.h"  // lines 21-21
- #include "app/ui/document.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/headless.cpp:
#include "headless.h"
#include <json_helper.h>                     // for from_json, parseJsonFrom
#include <stddef.h>                          // for size_t
#include <QByteArray>                        // for QByteArray
#include <QDir>                              // for QDir
#include <QFileInfo>                         // for QFileInfo
#include <QList>                             // for QList
#include <QMap>                              // for QMap
#include <QString>                           // for QString, operator""_s
#include <QStringList>                       // for QStringList
#include <QUrl>                              // for QUrl
#include <QVariant>                          // for QVariant
#include <QVariantMap>                       // for QVariantMap
#include <algorithm>                         // for clamp, max
#include <iostream>                          // for basic_ostream, operator<<
#include <json.hpp>                          // for iter_impl, iteration_pro...
#include <string>                            // for char_traits, operator<<
#include "shared/utils/console.h"            // for consoleWidth, isRunningI...
#include "shared/utils/container.h"          // for contains, containsAllOf
#include "ui/qml/app/graphia/application.h"  // for Application
#include "ui/qml/app/graphia/document.h"     // for Document
---


/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.h should add these lines:
#include <vector>             // for vector
class ComponentId;
class Graph;

/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.h:
#include <vector>             // for vector
#include "componentlayout.h"  // for ComponentLayout, ComponentLayoutData
class ComponentId;
class Graph;
---

/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.cpp should add these lines:
#include <stddef.h>                                // for size_t
#include <QString>                                 // for operator""_s
#include <compare>                                 // for operator<, strong_...
#include "layout/componentlayout.h"                // for ComponentLayoutData
#include "maths/circle.h"                          // for Circle
#include "shared/graph/elementid.h"                // for ComponentId, Eleme...
#include "shared/graph/grapharray.h"               // for GenericGraphArray
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref

/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.cpp should remove these lines:
- #include "app/graph/componentmanager.h"  // lines 37-37
- #include "app/graph/graphcomponent.h"  // lines 36-36
- #include "app/preferences.h"  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.cpp:
#include "circlepackcomponentlayout.h"
#include <stddef.h>                                // for size_t
#include <QString>                                 // for operator""_s
#include <QVariant>                                // for QVariant
#include <algorithm>                               // for max, stable_sort
#include <cmath>                                   // for sqrt
#include <compare>                                 // for operator<, strong_...
#include "app/graph/graph.h"                       // for Graph
#include "layout/componentlayout.h"                // for ComponentLayoutData
#include "maths/circle.h"                          // for Circle
#include "shared/graph/elementid.h"                // for ComponentId, Eleme...
#include "shared/graph/grapharray.h"               // for GenericGraphArray
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
---


/home/runner/work/graphia/graphia/source/app/graph/graphmodel.h should add these lines:
#include <qtmetamacros.h>                                         // for slots
#include <QList>                                                  // for QList
#include <QObject>                                                // for QOb...
#include <QVariant>                                               // for QVa...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "ui/qml/app/graphia/Utils/preferences.h"                 // for Pre...
class IGraph;
class IMutableGraph;
class Progressable;
struct IElementVisual;

/home/runner/work/graphia/graphia/source/app/graph/graphmodel.h should remove these lines:
- #include "app/preferences.h"  // lines 28-28
- class AttributeChangesTracker;  // lines 62-62
- class ICommand;  // lines 50-50

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphmodel.h:
#include <qtmetamacros.h>                                         // for slots
#include <QList>                                                  // for QList
#include <QObject>                                                // for QOb...
#include <QSet>                                                   // for QSet
#include <QString>                                                // for QSt...
#include <QStringList>                                            // for QSt...
#include <QVariant>                                               // for QVa...
#include <QVariantMap>                                            // for QVa...
#include <atomic>                                                 // for ato...
#include <map>                                                    // for map
#include <memory>                                                 // for uni...
#include <vector>                                                 // for vector
#include "app/attributes/attribute.h"                             // for Att...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/graph/grapharray.h"                              // for Nod...
#include "shared/graph/igraphmodel.h"                             // for Vis...
#include "shared/loading/userelementdata.h"                       // for Use...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "ui/qml/app/graphia/Utils/preferences.h"                 // for Pre...
class Graph;  // lines 43-43
class GraphModelImpl;  // lines 42-42
class GraphTransformFactory;  // lines 60-60
class IGraph;
class IMutableGraph;
class IPlugin;  // lines 51-51
class MutableGraph;  // lines 44-44
class NodePositions;  // lines 45-45
class Progressable;
class SearchManager;  // lines 48-48
class SelectionManager;  // lines 47-47
class TransformInfo;  // lines 57-57
class VisualisationInfo;  // lines 58-58
struct ElementVisual;  // lines 53-53
struct IElementVisual;
struct TextVisual;  // lines 54-54
---

/home/runner/work/graphia/graphia/source/app/graph/graphmodel.cpp should add these lines:
#include <qassert.h>
#include <stddef.h>
#include <QColor>
#include <QDebug>
#include <QMap>
#include <QMessageLogger>
#include <QtCore>
#include <algorithm>
#include <cmath>
#include <iterator>
#include <mutex>
#include "attributes/condtionfnops.h"
#include "graph/elementiddistinctsetcollection.h"
#include "graph/graph.h"
#include "shared/attributes/iattribute.h"
#include "shared/attributes/iattributerange.h"
#include "shared/graph/igraph.h"
#include "shared/graph/igraphcomponent.h"
#include "shared/loading/userdata.h"
#include "shared/ui/visualisations/ielementvisual.h"
#include "shared/utils/container.h"
#include "transform/graphtransform.h"
#include "transform/graphtransformconfig.h"
#include "ui/qml/app/graphia/alert.h"
#include "ui/qml/app/graphia/document.h"
#include "ui/qml/app/graphia/limitconstants.h"
#include "ui/visualisations/visualisationchannel.h"
#include "ui/visualisations/visualisationconfig.h"
class IMutableGraph;
class Progressable;

/home/runner/work/graphia/graphia/source/app/graph/graphmodel.cpp should remove these lines:
- #include "app/ui/document.h"  // lines 29-29
- #include "limitconstants.h"  // lines 21-21
- #include "preferences.h"  // lines 22-22
- #include "shared/commands/icommand.h"  // lines 72-72

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphmodel.cpp:
#include "graphmodel.h"
#include <qassert.h>
#include <stddef.h>
#include <QColor>
#include <QDebug>
#include <QMap>
#include <QMessageLogger>
#include <QMetaType>
#include <QRegularExpression>
#include <QSet>
#include <QtCore>
#include <algorithm>
#include <cmath>
#include <iterator>
#include <map>
#include <mutex>
#include <set>
#include <utility>
#include <vector>
#include "app/attributes/attribute.h"
#include "app/graph/mutablegraph.h"
#include "app/layout/nodepositions.h"
#include "app/transform/graphtransformconfigparser.h"
#include "app/transform/transformedgraph.h"
#include "app/transform/transforminfo.h"
#include "app/transform/transforms/attributesynthesistransform.h"
#include "app/transform/transforms/averageattributetransform.h"
#include "app/transform/transforms/betweennesstransform.h"
#include "app/transform/transforms/combineattributestransform.h"
#include "app/transform/transforms/conditionalattributetransform.h"
#include "app/transform/transforms/contractbyattributetransform.h"
#include "app/transform/transforms/eccentricitytransform.h"
#include "app/transform/transforms/edgecontractiontransform.h"
#include "app/transform/transforms/edgereductiontransform.h"
#include "app/transform/transforms/filtertransform.h"
#include "app/transform/transforms/forwardmultielementattributetransform.h"
#include "app/transform/transforms/knntransform.h"
#include "app/transform/transforms/louvaintransform.h"
#include "app/transform/transforms/mcltransform.h"
#include "app/transform/transforms/pageranktransform.h"
#include "app/transform/transforms/percentnntransform.h"
#include "app/transform/transforms/removeleavestransform.h"
#include "app/transform/transforms/separatebyattributetransform.h"
#include "app/transform/transforms/spanningtreetransform.h"
#include "app/transform/transforms/typecasttransform.h"
#include "app/ui/searchmanager.h"
#include "app/ui/selectionmanager.h"
#include "app/ui/visualisations/colorvisualisationchannel.h"
#include "app/ui/visualisations/elementvisual.h"
#include "app/ui/visualisations/sharedtextvisualisationchannel.h"
#include "app/ui/visualisations/sizevisualisationchannel.h"
#include "app/ui/visualisations/textcolorvisualisationchannel.h"
#include "app/ui/visualisations/textsizevisualisationchannel.h"
#include "app/ui/visualisations/textvisual.h"
#include "app/ui/visualisations/textvisualisationchannel.h"
#include "app/ui/visualisations/visualisationbuilder.h"
#include "app/ui/visualisations/visualisationconfigparser.h"
#include "app/ui/visualisations/visualisationinfo.h"
#include "attributes/condtionfnops.h"
#include "graph/elementiddistinctsetcollection.h"
#include "graph/graph.h"
#include "shared/attributes/iattribute.h"
#include "shared/attributes/iattributerange.h"
#include "shared/graph/grapharray.h"
#include "shared/graph/igraph.h"
#include "shared/graph/igraphcomponent.h"
#include "shared/loading/userdata.h"
#include "shared/loading/userelementdata.h"
#include "shared/plugins/iplugin.h"
#include "shared/ui/visualisations/ielementvisual.h"
#include "shared/utils/container.h"
#include "shared/utils/container_combine.h"
#include "shared/utils/flags.h"
#include "shared/utils/pair_iterator.h"
#include "shared/utils/scopetimer.h"
#include "shared/utils/string.h"
#include "shared/utils/utils.h"
#include "transform/graphtransform.h"
#include "transform/graphtransformconfig.h"
#include "ui/qml/app/graphia/alert.h"
#include "ui/qml/app/graphia/document.h"
#include "ui/qml/app/graphia/limitconstants.h"
#include "ui/visualisations/visualisationchannel.h"
#include "ui/visualisations/visualisationconfig.h"
class IMutableGraph;
class Progressable;
---


/home/runner/work/graphia/graphia/source/app/layout/componentlayout.h should add these lines:
#include <vector>                     // for vector
class ComponentId;

/home/runner/work/graphia/graphia/source/app/layout/componentlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/componentlayout.h:
#include <QRectF>                     // for QRectF
#include <vector>                     // for vector
#include "app/maths/circle.h"         // for Circle
#include "shared/graph/grapharray.h"  // for ComponentArray
class ComponentId;
class Graph;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/layout/componentlayout.cpp should add these lines:
#include <QPointF>                   // for operator-, QPointF
#include "maths/circle.h"            // for Circle
#include "shared/graph/elementid.h"  // for ComponentId

/home/runner/work/graphia/graphia/source/app/layout/componentlayout.cpp should remove these lines:
- #include "app/graph/graph.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/componentlayout.cpp:
#include "componentlayout.h"
#include <QPointF>                   // for operator-, QPointF
#include "maths/circle.h"            // for Circle
#include "shared/graph/elementid.h"  // for ComponentId
---


/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.h should add these lines:
#include <qtmetamacros.h>             // for Q_OBJECT
#include <QMatrix4x4>                 // for QMatrix4x4
#include "shared/graph/grapharray.h"  // for NodeArray
class IGraphComponent;
class NodeId;
class NodeLayoutPositions;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.h:
#include <qtmetamacros.h>             // for Q_OBJECT
#include <QMatrix4x4>                 // for QMatrix4x4
#include "layout.h"                   // for Layout
#include "shared/graph/grapharray.h"  // for NodeArray
class IGraphComponent;
class NodeId;
class NodeLayoutPositions;
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.cpp should add these lines:
#include <QVector3D>                       // for QVector3D
#include <algorithm>                       // for copy
#include <queue>                           // for queue
#include <vector>                          // for vector
#include "layout/layout.h"                 // for Layout
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ElementId
#include "shared/graph/igraph.h"           // for IGraph, IEdge, INode
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.cpp:
#include "fastinitiallayout.h"
#include <QMatrix4x4>                      // for QMatrix4x4, operator*
#include <QVector3D>                       // for QVector3D
#include <QVector4D>                       // for QVector4D, operator*, oper...
#include <algorithm>                       // for copy
#include <cmath>                           // for sin, acos, cos, fmod, sqrt
#include <numbers>                         // for pi_v
#include <queue>                           // for queue
#include <vector>                          // for vector
#include "layout/layout.h"                 // for Layout
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ElementId
#include "shared/graph/igraph.h"           // for IGraph, IEdge, INode
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
---


/home/runner/work/graphia/graphia/source/app/layout/collision.h should add these lines:

/home/runner/work/graphia/graphia/source/app/layout/collision.h should remove these lines:
- #include <memory>  // lines 28-28
- #include "layout.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/collision.h:
#include <QVector3D>                 // for QVector3D
#include <vector>                    // for vector
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class GraphModel;  // lines 30-30
---

/home/runner/work/graphia/graphia/source/app/layout/collision.cpp should add these lines:
#include <qassert.h>                                  // for Q_ASSERT
#include <limits>                                     // for numeric_limits
#include "layout/nodepositions.h"                     // for NodePositions
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags

/home/runner/work/graphia/graphia/source/app/layout/collision.cpp should remove these lines:
- #include "app/maths/ray.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/collision.cpp:
#include "collision.h"
#include <qassert.h>                                  // for Q_ASSERT
#include <limits>                                     // for numeric_limits
#include "app/graph/graph.h"                          // for Graph
#include "app/graph/graphmodel.h"                     // for GraphModel
#include "app/maths/plane.h"                          // for Plane
#include "app/ui/visualisations/elementvisual.h"      // for ElementVisual
#include "layout/nodepositions.h"                     // for NodePositions
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
---


/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.h should remove these lines:
- #include <algorithm>  // lines 29-29
- #include <utility>  // lines 28-28
- #include "shared/utils/utils.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layoutsettings.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QString>         // for QString
#include <vector>          // for vector
---

/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.cpp should add these lines:
#include <QMessageLogger>  // for qDebug
#include <algorithm>       // for clamp, find_if

/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layoutsettings.cpp:
#include "layoutsettings.h"
#include <QDebug>          // for QDebug
#include <QMessageLogger>  // for qDebug
#include <algorithm>       // for clamp, find_if
#include <cmath>           // for log10, pow
---


/home/runner/work/graphia/graphia/source/app/layout/nodepositions.h should add these lines:
#include <qassert.h>                      // for Q_ASSERT
#include <stddef.h>                       // for size_t
#include <vector>                         // for vector
#include "shared/graph/elementid.h"       // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/nodepositions.h should remove these lines:
- #include <array>  // lines 27-27
- #include "app/maths/boundingsphere.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/nodepositions.h:
#include <qassert.h>                      // for Q_ASSERT
#include <stddef.h>                       // for size_t
#include <QVector3D>                      // for QVector3D
#include <mutex>                          // for recursive_mutex
#include <thread>                         // for thread
#include <vector>                         // for vector
#include "app/maths/boundingbox.h"        // for BoundingBox3D
#include "shared/graph/elementid.h"       // for NodeId
#include "shared/graph/grapharray.h"      // for NodeArray
#include "shared/utils/circularbuffer.h"  // for CircularBuffer
---

/home/runner/work/graphia/graphia/source/app/layout/nodepositions.cpp should add these lines:
#include <algorithm>            // for max
#include "maths/boundingbox.h"  // for BoundingBox3D

/home/runner/work/graphia/graphia/source/app/layout/nodepositions.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/nodepositions.cpp:
#include "nodepositions.h"
#include <algorithm>            // for max
#include <cmath>                // for isnan
#include <numeric>              // for accumulate
#include "maths/boundingbox.h"  // for BoundingBox3D
---


/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.h should add these lines:
#include <vector>             // for vector
class ComponentId;
class Graph;

/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.h:
#include <vector>             // for vector
#include "componentlayout.h"  // for ComponentLayout, ComponentLayoutData
class ComponentId;
class Graph;
---

/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.cpp should add these lines:
#include <qtypes.h>                        // for qreal
#include <stddef.h>                        // for size_t
#include "layout/componentlayout.h"        // for ComponentLayoutData
#include "maths/circle.h"                  // for Circle
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/grapharray.h"       // for ComponentArray, GenericGra...
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.cpp should remove these lines:
- #include "app/graph/componentmanager.h"  // lines 23-23
- #include "app/graph/graphcomponent.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.cpp:
#include "powerof2gridcomponentlayout.h"
#include <qtypes.h>                        // for qreal
#include <stddef.h>                        // for size_t
#include <QPointF>                         // for QPointF
#include <algorithm>                       // for copy, max, stable_sort
#include <stack>                           // for stack
#include <vector>                          // for vector
#include "app/graph/graph.h"               // for Graph
#include "layout/componentlayout.h"        // for ComponentLayoutData
#include "maths/circle.h"                  // for Circle
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/grapharray.h"       // for ComponentArray, GenericGra...
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/utils.h"            // for smallestPowerOf2GreaterThan
---


/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.h should add these lines:
#include <qtmetamacros.h>                 // for Q_OBJECT
#include <stddef.h>                       // for size_t
#include <QObject>                        // for QObject
#include <QString>                        // for QString, operator""_s
#include <atomic>                         // for atomic
#include <memory>                         // for unique_ptr
#include "shared/graph/grapharray.h"      // for EdgeArray, NodeArray
class ComponentId;
class GraphModel;
class IGraphComponent;
class LayoutSettings;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.h should remove these lines:
- #include <vector>  // lines 28-28
- #include "app/graph/componentmanager.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.h:
#include <qtmetamacros.h>                 // for Q_OBJECT
#include <stddef.h>                       // for size_t
#include <QObject>                        // for QObject
#include <QString>                        // for QString, operator""_s
#include <QVector3D>                      // for QVector3D
#include <atomic>                         // for atomic
#include <memory>                         // for unique_ptr
#include "layout.h"                       // for Layout, LayoutFactory
#include "shared/graph/grapharray.h"      // for EdgeArray, NodeArray
#include "shared/utils/circularbuffer.h"  // for CircularBuffer
class ComponentId;
class GraphModel;
class IGraphComponent;
class LayoutSettings;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.cpp should add these lines:
#include <bits/std_abs.h>                  // for abs
#include <QtCore>                          // for qMakeStringPrivate, qFuzzy...
#include <functional>                      // for function
#include <vector>                          // for vector
#include "layout/layout.h"                 // for Layout, LayoutFactory
#include "layout/layoutsettings.h"         // for LayoutSettings, LayoutSett...
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ComponentId
#include "shared/graph/igraph.h"           // for IEdge, IGraph
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.cpp should remove these lines:
- #include "app/preferences.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.cpp:
#include "forcedirectedlayout.h"
#include <bits/std_abs.h>                  // for abs
#include <QtCore>                          // for qMakeStringPrivate, qFuzzy...
#include <cmath>                           // for sqrt
#include <functional>                      // for function
#include <vector>                          // for vector
#include "app/graph/graph.h"               // for Graph
#include "app/graph/graphmodel.h"          // for GraphModel
#include "barneshuttree.h"                 // for AbstractBarnesHutTree, Bar...
#include "fastinitiallayout.h"             // for FastInitialLayout
#include "layout/layout.h"                 // for Layout, LayoutFactory
#include "layout/layoutsettings.h"         // for LayoutSettings, LayoutSett...
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ComponentId
#include "shared/graph/igraph.h"           // for IEdge, IGraph
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/scopetimer.h"       // for SCOPE_TIMER_MULTISAMPLES
#include "shared/utils/threadpool.h"       // for parallel_for, ThreadPool
---


/home/runner/work/graphia/graphia/source/app/layout/layout.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QMessageLogger>                       // for qFatal
#include <QString>                              // for QString
#include <vector>                               // for vector
#include "shared/graph/grapharray.h"            // for ComponentArray
class ComponentId;
class ComponentSplitSet;
class EdgeId;
class Graph;
class NodeId;

/home/runner/work/graphia/graphia/source/app/layout/layout.h should remove these lines:
- #include <QVector2D>  // lines 33-33
- #include <QVector3D>  // lines 34-34
- #include <algorithm>  // lines 43-43
- #include <atomic>  // lines 41-41
- #include <cstdint>  // lines 45-45
- #include <limits>  // lines 44-44
- #include <map>  // lines 47-47
- #include <set>  // lines 46-46
- #include "app/graph/componentmanager.h"  // lines 24-24
- #include "shared/utils/enumbitmask.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layout.h:
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QMessageLogger>                       // for qFatal
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <condition_variable>                   // for condition_variable
#include <memory>                               // for unique_ptr
#include <mutex>                                // for mutex
#include <thread>                               // for thread
#include <vector>                               // for vector
#include "layoutsettings.h"                     // for LayoutSettings
#include "nodepositions.h"                      // for ExactNodePositions
#include "shared/graph/elementid_containers.h"  // for ComponentIdMap
#include "shared/graph/grapharray.h"            // for ComponentArray
#include "shared/graph/igraphcomponent.h"       // for IGraphComponent
#include "shared/utils/cancellable.h"           // for Cancellable
#include "shared/utils/performancecounter.h"    // for PerformanceCounter
class ComponentId;
class ComponentSplitSet;
class EdgeId;
class Graph;
class GraphModel;  // lines 125-125
class NodeId;
---

/home/runner/work/graphia/graphia/source/app/layout/layout.cpp should add these lines:
#include <bits/chrono.h>                 // for seconds
#include <qassert.h>                     // for Q_ASSERT
#include <qtenvironmentvariables.h>      // for qEnvironmentVariableIntValue
#include <Qt>                            // for ConnectionType
#include <algorithm>                     // for any_of, all_of, count_if
#include <map>                           // for operator==, _Rb_tree_iterator
#include <utility>                       // for pair, move
#include "layout/layoutsettings.h"       // for LayoutSettings, LayoutSettin...
#include "layout/nodepositions.h"        // for NodePositions, NodeLayoutPos...
#include "shared/graph/elementid.h"      // for ComponentId
#include "shared/utils/enumbitmask.h"    // for operator&, operator&&

/home/runner/work/graphia/graphia/source/app/layout/layout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layout.cpp:
#include "layout.h"
#include <bits/chrono.h>                 // for seconds
#include <qassert.h>                     // for Q_ASSERT
#include <qtenvironmentvariables.h>      // for qEnvironmentVariableIntValue
#include <QDebug>                        // for QDebug
#include <Qt>                            // for ConnectionType
#include <algorithm>                     // for any_of, all_of, count_if
#include <map>                           // for operator==, _Rb_tree_iterator
#include <utility>                       // for pair, move
#include "app/graph/componentmanager.h"  // for ComponentSplitSet
#include "app/graph/graph.h"             // for Graph
#include "app/graph/graphmodel.h"        // for GraphModel
#include "layout/layoutsettings.h"       // for LayoutSettings, LayoutSettin...
#include "layout/nodepositions.h"        // for NodePositions, NodeLayoutPos...
#include "shared/graph/elementid.h"      // for ComponentId
#include "shared/utils/container.h"      // for contains
#include "shared/utils/enumbitmask.h"    // for operator&, operator&&
#include "shared/utils/thread.h"         // for setCurrentThreadName
---


/home/runner/work/graphia/graphia/source/app/layout/randomlayout.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT
class IGraphComponent;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/randomlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/randomlayout.h:
#include <qtmetamacros.h>  // for Q_OBJECT
#include "layout.h"        // for Layout
class IGraphComponent;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/randomlayout.cpp should add these lines:
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/randomlayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/randomlayout.cpp:
#include "randomlayout.h"
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId
#include "shared/utils/random.h"     // for randQVector3D
---


/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT
class IGraphComponent;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/scalinglayout.h:
#include <qtmetamacros.h>  // for Q_OBJECT
#include "layout.h"        // for Layout
class IGraphComponent;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.cpp should add these lines:
#include <QVector3D>                 // for operator*, QVector3D
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/scalinglayout.cpp:
#include "scalinglayout.h"
#include <QVector3D>                 // for operator*, QVector3D
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId
---


/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.h should add these lines:
#include <QString>                     // for QString, operator""_s
#include <QUrl>                        // for QUrl
#include "loading/isaver.h"            // for ISaver
class IGraphModel;

/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.h should remove these lines:
- #include "app/graph/graphmodel.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/gmlsaver.h:
#include <QString>                     // for QString, operator""_s
#include <QUrl>                        // for QUrl
#include "app/loading/saverfactory.h"  // for SaverFactory
#include "loading/isaver.h"            // for ISaver
class IGraphModel;
---

/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.cpp should add these lines:
#include <stddef.h>                                             // for size_t
#include <QChar>                                                // for QChar
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <cmath>                                                // for isnan
#include <map>                                                  // for map
#include <vector>                                               // for vector
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...

/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.cpp should remove these lines:
- #include "shared/graph/imutablegraph.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/gmlsaver.cpp:
#include "gmlsaver.h"
#include <stddef.h>                                             // for size_t
#include <QChar>                                                // for QChar
#include <QFile>                                                // for QFile
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <QRegularExpression>                                   // for QRegu...
#include <QTextStream>                                          // for QText...
#include <cmath>                                                // for isnan
#include <map>                                                  // for map
#include <vector>                                               // for vector
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
---


/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.h should add these lines:
#include "loading/isaver.h"            // for ISaver
class IGraphModel;

/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.h:
#include <QString>                     // for QString, operator""_s
#include <QUrl>                        // for QUrl
#include "app/loading/saverfactory.h"  // for SaverFactory
#include "loading/isaver.h"            // for ISaver
class IGraphModel;
---

/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.cpp should add these lines:
#include <qassert.h>                                            // for Q_ASSERT
#include <stddef.h>                                             // for size_t
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <QVector3D>                                            // for QVect...
#include <map>                                                  // for map
#include <vector>                                               // for vector
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...

/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.cpp should remove these lines:
- #include "app/graph/graph.h"  // lines 21-21
- #include "shared/graph/imutablegraph.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.cpp:
#include "graphmlsaver.h"
#include <qassert.h>                                            // for Q_ASSERT
#include <stddef.h>                                             // for size_t
#include <QFile>                                                // for QFile
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <QString>                                              // for QAnyS...
#include <QUrl>                                                 // for QUrl
#include <QVector3D>                                            // for QVect...
#include <QXmlStreamWriter>                                     // for QXmlS...
#include <map>                                                  // for map
#include <vector>                                               // for vector
#include "app/graph/graphmodel.h"                               // for Graph...
#include "app/layout/nodepositions.h"                           // for NodeP...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
---


/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.h should add these lines:
#include "loading/isaver.h"            // for ISaver
class IGraphModel;

/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.h:
#include <QString>                     // for QString, operator""_s
#include <QUrl>                        // for QUrl
#include "app/loading/saverfactory.h"  // for SaverFactory
#include "loading/isaver.h"            // for ISaver
class IGraphModel;
---

/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.cpp should add these lines:
#include <stddef.h>                                             // for size_t
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <Qt>                                                   // for CaseS...
#include <algorithm>                                            // for remov...
#include <vector>                                               // for vector
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for opera...

/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.cpp should remove these lines:
- #include <QRegularExpression>  // lines 27-27
- #include "shared/graph/imutablegraph.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.cpp:
#include "pairwisesaver.h"
#include <stddef.h>                                             // for size_t
#include <QFile>                                                // for QFile
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QTextStream>                                          // for QText...
#include <Qt>                                                   // for CaseS...
#include <algorithm>                                            // for remov...
#include <vector>                                               // for vector
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/graph/igraph.h"                                // for IEdge
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for opera...
---


/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.h should add these lines:
#include <QUrl>              // for QUrl
#include "loading/isaver.h"  // for ISaver
class IGraphModel;
class Progressable;

/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.h:
#include <json_helper.h>     // for json
#include <QString>           // for QString, operator""_s
#include <QUrl>              // for QUrl
#include "loading/isaver.h"  // for ISaver
#include "saverfactory.h"    // for SaverFactory
class IGraph;  // lines 30-30
class IGraphModel;
class Progressable;
---

/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.cpp should add these lines:
#include <stddef.h>                                             // for size_t
#include <QByteArray>                                           // for QByte...
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <json.hpp>                                             // for basic...
#include <string>                                               // for to_st...
#include <vector>                                               // for vector
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/progressable.h"                          // for Progr...

/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.cpp should remove these lines:
- #include <QDebug>  // lines 29-29
- #include "nativesaver.h"  // lines 21-21
- #include "shared/graph/imutablegraph.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.cpp:
#include "jsongraphsaver.h"
#include <json_helper.h>                                        // for json
#include <stddef.h>                                             // for size_t
#include <QByteArray>                                           // for QByte...
#include <QFile>                                                // for QFile
#include <QFlags>                                               // for QFlags
#include <QIODevice>                                            // for QIODe...
#include <QObject>                                              // for QObject
#include <json.hpp>                                             // for basic...
#include <string>                                               // for to_st...
#include <vector>                                               // for vector
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/graph/elementid.h"                             // for NodeId
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/progressable.h"                          // for Progr...
---


/home/runner/work/graphia/graphia/source/app/loading/nativeloader.h should add these lines:
#include <QList>                                    // for QList
#include <vector>                                   // for vector
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection, Shading
class IGraphModel;
class IPluginInstance;
class QUrl;

/home/runner/work/graphia/graphia/source/app/loading/nativeloader.h should remove these lines:
- #include "app/rendering/graphrenderertypes.h"  // lines 29-29
- #include "shared/plugins/iplugin.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativeloader.h:
#include <QByteArray>                               // for QByteArray
#include <QList>                                    // for QList
#include <QString>                                  // for QString
#include <QStringList>                              // for QStringList
#include <map>                                      // for map
#include <memory>                                   // for unique_ptr
#include <vector>                                   // for vector
#include "app/attributes/enrichmenttablemodel.h"    // for EnrichmentTableModel
#include "app/layout/layout.h"                      // for LayoutSettingKeyV...
#include "app/layout/nodepositions.h"               // for ExactNodePositions
#include "shared/graph/elementid_containers.h"      // for NodeIdSet
#include "shared/loading/iparser.h"                 // for IParser
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection, Shading
class IGraphModel;
class IPluginInstance;
class QUrl;
---

/home/runner/work/graphia/graphia/source/app/loading/nativeloader.cpp should add these lines:
#include <bits/chrono.h>                     // for operator""ms
#include <qassert.h>                         // for Q_ASSERT
#include <qtpreprocessorsupport.h>           // for Q_UNUSED
#include <qtypes.h>                          // for qsizetype
#include <stdint.h>                          // for uint64_t
#include <zconf.h>                           // for Bytef, MAX_WBITS, uInt
#include <QChar>                             // for QChar
#include <QDebug>                            // for QDebug
#include <QFile>                             // for QFile
#include <QIODevice>                         // for QIODevice
#include <QMessageLogger>                    // for qDebug
#include <QObject>                           // for QObject
#include <QUrl>                              // for QUrl
#include <QVector3D>                         // for QVector3D
#include <algorithm>                         // for all_of
#include <cmath>                             // for double_t
#include <json.hpp>                          // for basic_json, iter_impl
#include <set>                               // for set
#include <string>                            // for basic_string, string
#include "graph/graphmodel.h"                // for GraphModel
#include "graph/mutablegraph.h"              // for MutableGraph
#include "layout/layout.h"                   // for LayoutSettingKeyValue
#include "layout/nodepositions.h"            // for ExactNodePositions
#include "shared/graph/elementid.h"          // for NodeId, ElementId
#include "shared/graph/grapharray.h"         // for NodeArray
#include "ui/qml/app/graphia/application.h"  // for Application

/home/runner/work/graphia/graphia/source/app/loading/nativeloader.cpp should remove these lines:
- #include <chrono>  // lines 44-44
- #include "app/application.h"  // lines 22-22
- #include "shared/graph/imutablegraph.h"  // lines 25-25
- #include "shared/loading/progress_iterator.h"  // lines 35-35
- #include "shared/loading/userelementdata.h"  // lines 34-34

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativeloader.cpp:
#include "nativeloader.h"
#include <bits/chrono.h>                     // for operator""ms
#include <json_helper.h>                     // for json, parseJsonFrom
#include <qassert.h>                         // for Q_ASSERT
#include <qtpreprocessorsupport.h>           // for Q_UNUSED
#include <qtypes.h>                          // for qsizetype
#include <stdint.h>                          // for uint64_t
#include <zconf.h>                           // for Bytef, MAX_WBITS, uInt
#include <zlib.h>                            // for inflate, inflateEnd, z_s...
#include <QChar>                             // for QChar
#include <QDataStream>                       // for QDataStream
#include <QDebug>                            // for QDebug
#include <QFile>                             // for QFile
#include <QIODevice>                         // for QIODevice
#include <QMessageLogger>                    // for qDebug
#include <QObject>                           // for QObject
#include <QRegularExpression>                // for QRegularExpression
#include <QString>                           // for QString, operator""_s
#include <QUrl>                              // for QUrl
#include <QVector3D>                         // for QVector3D
#include <algorithm>                         // for all_of
#include <cmath>                             // for double_t
#include <json.hpp>                          // for basic_json, iter_impl
#include <set>                               // for set
#include <string>                            // for basic_string, string
#include <thread>                            // for sleep_for
#include <vector>                            // for vector
#include "graph/graphmodel.h"                // for GraphModel
#include "graph/mutablegraph.h"              // for MutableGraph
#include "layout/layout.h"                   // for LayoutSettingKeyValue
#include "layout/nodepositions.h"            // for ExactNodePositions
#include "nativesaver.h"                     // for NativeSaver
#include "shared/graph/elementid.h"          // for NodeId, ElementId
#include "shared/graph/grapharray.h"         // for NodeArray
#include "shared/graph/grapharray_json.h"    // for forEachJsonGraphArray
#include "shared/graph/igraphmodel.h"        // for IGraphModel
#include "shared/loading/jsongraphparser.h"  // for JsonGraphParser
#include "shared/plugins/iplugin.h"          // for IPluginInstance, IPlugin
#include "shared/utils/container.h"          // for contains
#include "shared/utils/scope_exit.h"         // for make_scope_exit
#include "shared/utils/source_location.h"    // for CURRENT_SOURCE_LOCATION
#include "ui/qml/app/graphia/application.h"  // for Application
---


/home/runner/work/graphia/graphia/source/app/loading/parserthread.h should add these lines:
#include <qtmetamacros.h>                  // for Q_OBJECT, signals
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
class IParser;

/home/runner/work/graphia/graphia/source/app/loading/parserthread.h should remove these lines:
- #include "shared/loading/iparser.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/parserthread.h:
#include <qtmetamacros.h>                  // for Q_OBJECT, signals
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QUrl>                            // for QUrl
#include <memory>                          // for unique_ptr
#include <thread>                          // for thread
#include "shared/loading/iparserthread.h"  // for IParserThread
#include "shared/utils/failurereason.h"    // for FailureReason
class GraphModel;  // lines 31-31
class IParser;
---

/home/runner/work/graphia/graphia/source/app/loading/parserthread.cpp should add these lines:
#include <QMessageLogger>                // for qDebug
#include <utility>                       // for move
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/loading/iparser.h"      // for IParser

/home/runner/work/graphia/graphia/source/app/loading/parserthread.cpp should remove these lines:
- #include <atomic>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/parserthread.cpp:
#include "parserthread.h"
#include <QDebug>                        // for QDebug
#include <QMessageLogger>                // for qDebug
#include <utility>                       // for move
#include "app/graph/graphmodel.h"        // for GraphModel
#include "app/graph/mutablegraph.h"      // for MutableGraph
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/loading/iparser.h"      // for IParser
#include "shared/utils/thread.h"         // for setCurrentThreadName
---


/home/runner/work/graphia/graphia/source/app/maths/boundingbox.h should add these lines:
#include <QtCore>     // for Q_REQUIRED_RESULT

/home/runner/work/graphia/graphia/source/app/maths/boundingbox.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingbox.h:
#include <QVector2D>  // for QVector2D, operator*, operator+
#include <QVector3D>  // for QVector3D
#include <QtCore>     // for Q_REQUIRED_RESULT
#include <vector>     // for vector
#include "line.h"     // for Line2D, Line3D
class Ray;  // lines 67-67
---

/home/runner/work/graphia/graphia/source/app/maths/boundingbox.cpp should add these lines:
#include <stddef.h>      // for size_t
#include <array>         // for array
#include "maths/line.h"  // for Line2D, Line3D

/home/runner/work/graphia/graphia/source/app/maths/boundingbox.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingbox.cpp:
#include "boundingbox.h"
#include <stddef.h>      // for size_t
#include <algorithm>     // for max, min
#include <array>         // for array
#include <cmath>         // for isinf, isnan
#include <limits>        // for numeric_limits
#include "maths/line.h"  // for Line2D, Line3D
#include "ray.h"         // for Ray
---


/home/runner/work/graphia/graphia/source/app/loading/saverfactory.h should add these lines:
#include <memory>    // for unique_ptr, make_unique
class IPluginInstance;
class QByteArray;
class QUrl;

/home/runner/work/graphia/graphia/source/app/loading/saverfactory.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/saverfactory.h:
#include <QString>   // for QString
#include <memory>    // for unique_ptr, make_unique
#include "isaver.h"  // for ISaverFactory
class Document;  // lines 26-26
class IGraphModel;  // lines 27-27
class IPluginInstance;
class QByteArray;
class QUrl;
---

/home/runner/work/graphia/graphia/source/app/loading/saverfactory.cpp should add these lines:
#include "ui/qml/app/graphia/document.h"  // for Document

/home/runner/work/graphia/graphia/source/app/loading/saverfactory.cpp should remove these lines:
- #include "app/ui/document.h"  // lines 21-21
- #include "shared/graph/igraphmodel.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/saverfactory.cpp:
#include "saverfactory.h"
#include "ui/qml/app/graphia/document.h"  // for Document
---


/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.h should add these lines:
#include <QtCore>     // for Q_REQUIRED_RESULT

/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingsphere.h:
#include <QVector3D>  // for QVector3D
#include <QtCore>     // for Q_REQUIRED_RESULT
#include <numbers>    // for pi_v
#include <vector>     // for vector
#include "line.h"     // for Line3D
class Ray;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.cpp should add these lines:
#include <algorithm>     // for max
#include "maths/line.h"  // for Line3D

/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingsphere.cpp:
#include "boundingsphere.h"
#include <algorithm>     // for max
#include <cmath>         // for sqrt
#include <numeric>       // for accumulate
#include <vector>        // for vector
#include "maths/line.h"  // for Line3D
#include "ray.h"         // for Ray
---


/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.h should add these lines:
class QVector3D;

/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.h should remove these lines:
- #include <QVector3D>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.h:
#include "frustum.h"  // for BaseFrustum
#include "line.h"     // for Line3D
#include "plane.h"    // for Plane
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.cpp should add these lines:
#include <QVector3D>             // for QVector3D, operator-
#include "maths/line.h"          // for Line3D
#include "maths/plane.h"         // for Plane

/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.cpp:
#include "conicalfrustum.h"
#include <QVector3D>             // for QVector3D, operator-
#include "maths/line.h"          // for Line3D
#include "maths/plane.h"         // for Plane
#include "shared/utils/utils.h"  // for interpolate
---


/home/runner/work/graphia/graphia/source/app/loading/nativesaver.h should add these lines:
#include <memory>                            // for unique_ptr
#include "ui/qml/app/graphia/application.h"  // for Application

/home/runner/work/graphia/graphia/source/app/loading/nativesaver.h should remove these lines:
- #include <json_helper.h>  // lines 31-31
- #include <QStringList>  // lines 35-35
- #include <utility>  // lines 22-22
- #include "app/graph/graphmodel.h"  // lines 27-27
- #include "app/graph/mutablegraph.h"  // lines 28-28
- #include "app/ui/document.h"  // lines 29-29
- #include "shared/utils/progressable.h"  // lines 25-25
- class IGraph;  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativesaver.h:
#include <QByteArray>                        // for QByteArray
#include <QString>                           // for QString
#include <QUrl>                              // for QUrl
#include <memory>                            // for unique_ptr
#include "isaver.h"                          // for ISaver, ISaverFactory
#include "ui/qml/app/graphia/application.h"  // for Application
class Document;  // lines 38-38
class IPluginInstance;  // lines 40-40
---

/home/runner/work/graphia/graphia/source/app/loading/nativesaver.cpp should add these lines:
#include <json_helper.h>                      // for json
#include <qassert.h>                          // for Q_ASSERT
#include <qtpreprocessorsupport.h>            // for Q_UNUSED
#include <stddef.h>                           // for size_t
#include <stdint.h>                           // for uint64_t
#include <zconf.h>                            // for Bytef, MAX_WBITS, uInt
#include <QIODevice>                          // for QIODevice
#include <QList>                              // for QList
#include <QMetaType>                          // for QMetaType
#include <QObject>                            // for QObject
#include <QVariant>                           // for QVariant
#include <algorithm>                          // for copy
#include <iterator>                           // for back_insert_iterator
#include <json.hpp>                           // for basic_json
#include <map>                                // for operator==
#include <string>                             // for basic_string
#include "attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
#include "build_defines.h"                    // for VERSION
#include "layout/layoutsettings.h"            // for LayoutSetting
#include "layout/nodepositions.h"             // for NodePositions
#include "shared/graph/igraphmodel.h"         // for IGraphModel
#include "shared/utils/progressable.h"        // for Progressable
#include "ui/qml/app/graphia/document.h"      // for Document, LayoutPauseState
class ISaver;

/home/runner/work/graphia/graphia/source/app/loading/nativesaver.cpp should remove these lines:
- #include <QStringList>  // lines 35-35
- #include "shared/loading/userelementdata.h"  // lines 28-28
- #include "shared/utils/iterator_range.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativesaver.cpp:
#include "nativesaver.h"
#include <json_helper.h>                      // for json
#include <qassert.h>                          // for Q_ASSERT
#include <qtpreprocessorsupport.h>            // for Q_UNUSED
#include <stddef.h>                           // for size_t
#include <stdint.h>                           // for uint64_t
#include <zconf.h>                            // for Bytef, MAX_WBITS, uInt
#include <zlib.h>                             // for Z_FINISH, deflate, defl...
#include <QDataStream>                        // for QDataStream
#include <QFile>                              // for QFile
#include <QIODevice>                          // for QIODevice
#include <QList>                              // for QList
#include <QMetaType>                          // for QMetaType
#include <QObject>                            // for QObject
#include <QVariant>                           // for QVariant
#include <algorithm>                          // for copy
#include <iterator>                           // for back_insert_iterator
#include <json.hpp>                           // for basic_json
#include <map>                                // for operator==
#include <string>                             // for basic_string
#include <vector>                             // for vector
#include "app/graph/graphmodel.h"             // for GraphModel
#include "app/graph/mutablegraph.h"           // for MutableGraph
#include "attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
#include "build_defines.h"                    // for VERSION
#include "jsongraphsaver.h"                   // for JSONGraphSaver
#include "layout/layoutsettings.h"            // for LayoutSetting
#include "layout/nodepositions.h"             // for NodePositions
#include "shared/graph/grapharray_json.h"     // for graphArrayAsJson
#include "shared/graph/igraphmodel.h"         // for IGraphModel
#include "shared/plugins/iplugin.h"           // for IPluginInstance
#include "shared/utils/progressable.h"        // for Progressable
#include "shared/utils/scope_exit.h"          // for make_scope_exit
#include "shared/utils/string.h"              // for toQStringVector
#include "ui/qml/app/graphia/document.h"      // for Document, LayoutPauseState
class ISaver;
---


/home/runner/work/graphia/graphia/source/app/maths/frustum.h should add these lines:
class Plane;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/maths/frustum.h should remove these lines:
- #include <QVector3D>  // lines 25-25
- #include "plane.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/frustum.h:
#include <array>   // for array
#include "line.h"  // for Line3D
class Plane;
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/maths/frustum.cpp should add these lines:
#include <QVector3D>      // for QVector3D, operator*, operator+
#include "maths/line.h"   // for Line3D
#include "maths/plane.h"  // for Plane

/home/runner/work/graphia/graphia/source/app/maths/frustum.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/frustum.cpp:
#include "frustum.h"
#include <QVector3D>      // for QVector3D, operator*, operator+
#include <algorithm>      // for all_of
#include "maths/line.h"   // for Line3D
#include "maths/plane.h"  // for Plane
---


/home/runner/work/graphia/graphia/source/app/maths/plane.h should add these lines:
class Ray;

/home/runner/work/graphia/graphia/source/app/maths/plane.h should remove these lines:
- #include "app/maths/ray.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/plane.h:
#include <QVector3D>  // for QVector3D
class Ray;
---

/home/runner/work/graphia/graphia/source/app/maths/plane.cpp should add these lines:
#include "maths/ray.h"  // for Ray

/home/runner/work/graphia/graphia/source/app/maths/plane.cpp should remove these lines:
- #include <utility>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/plane.cpp:
#include "plane.h"
#include "maths/ray.h"  // for Ray
---


(/home/runner/work/graphia/graphia/source/app/maths/ray.h has correct #includes/fwd-decls)

(/home/runner/work/graphia/graphia/source/app/maths/ray.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/rendering/camera.h should add these lines:
#include <QRectF>                      // for QRectF

/home/runner/work/graphia/graphia/source/app/rendering/camera.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/camera.h:
#include <QMatrix4x4>                  // for QMatrix4x4
#include <QQuaternion>                 // for QQuaternion
#include <QRectF>                      // for QRectF
#include <QSharedPointer>              // for QSharedPointer
#include <QVector3D>                   // for QVector3D
#include "app/maths/conicalfrustum.h"  // for ConicalFrustum
#include "app/maths/frustum.h"         // for Frustum
#include "app/maths/line.h"            // for Line3D
#include "app/maths/ray.h"             // for Ray
class QOpenGLShaderProgram;  // lines 32-32
---

/home/runner/work/graphia/graphia/source/app/rendering/camera.cpp should add these lines:
#include <QVector4D>               // for QVector4D
#include "maths/conicalfrustum.h"  // for ConicalFrustum
#include "maths/frustum.h"         // for Frustum
#include "maths/line.h"            // for Line3D
#include "maths/ray.h"             // for Ray

/home/runner/work/graphia/graphia/source/app/rendering/camera.cpp should remove these lines:
- #include <QDebug>  // lines 24-24
- #include <QOpenGLShaderProgram>  // lines 23-23
- #include "app/maths/interpolation.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/camera.cpp:
#include "camera.h"
#include <QVector4D>               // for QVector4D
#include "maths/conicalfrustum.h"  // for ConicalFrustum
#include "maths/frustum.h"         // for Frustum
#include "maths/line.h"            // for Line3D
#include "maths/ray.h"             // for Ray
---


/home/runner/work/graphia/graphia/source/app/main.cpp should add these lines:
#include <bits/chrono.h>                                // for operator""s
#include <qassert.h>                                    // for Q_ASSERT
#include <qbytearrayview.h>                             // for QByteArrayView
#include <qtconfigmacros.h>                             // for QT_CONFIG
#include <qtcore-config.h>                              // for QT_FEATURE_pr...
#include <qtenvironmentvariables.h>                     // for qEnvironmentV...
#include <qtpreprocessorsupport.h>                      // for Q_UNUSED
#include <qtresource.h>                                 // for Q_INIT_RESOURCE
#include <qtwebenginequickglobal.h>                     // for initialize
#include <qtwebenginequickversion.h>                    // for QTWEBENGINEQU...
#include <qtypes.h>                                     // for quint16
#include <stdio.h>                                      // for fprintf, size_t
#include <QApplication>                                 // for QApplication
#include <QByteArray>                                   // for QByteArray
#include <QCommandLineOption>                           // for QCommandLineO...
#include <QCoreApplication>                             // for QCoreApplication
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QIODevice>                                    // for QIODevice
#include <QList>                                        // for QList
#include <QMessageLogger>                               // for QtMsgType
#include <QMetaObject>                                  // for QMetaObject
#include <QSGRendererInterface>                         // for QSGRendererIn...
#include <QString>                                      // for operator""_s
#include <QStringList>                                  // for QStringList
#include <QStringLiteral>                               // for qMakeStringPr...
#include <QUrl>                                         // for QUrl
#include <QVariant>                                     // for QVariant
#include <QtCore>                                       // for argument, qRe...
#include <string>                                       // for operator<<
#include "ui/qml/app/graphia/Utils/preferences.h"       // for definePref, pref
#include "ui/qml/app/graphia/application.h"             // for Application
#include "ui/qml/app/graphia/graphrenderertypes.h"      // for TextState

/home/runner/work/graphia/graphia/source/app/main.cpp should remove these lines:
- #include <breakpad/crashhandler.h>  // lines 79-79
- #include <QQmlComponent>  // lines 22-22
- #include <QQmlEngine>  // lines 23-23
- #include <QScreen>  // lines 34-34
- #include <QSettings>  // lines 43-43
- #include <QWidget>  // lines 32-32
- #include <QWindow>  // lines 33-33
- #include <QtGlobal>  // lines 27-27
- #include <QtWebEngineQuick>  // lines 48-48
- #include <chrono>  // lines 53-53
- #include <fstream>  // lines 52-52
- #include <memory>  // lines 54-54
- #include "app/application.h"  // lines 56-56
- #include "app/rendering/graphrenderer.h"  // lines 74-74
- #include "preferences.h"  // lines 57-57

The full include-list for /home/runner/work/graphia/graphia/source/app/main.cpp:
#include <bits/chrono.h>                                // for operator""s
#include <qassert.h>                                    // for Q_ASSERT
#include <qbytearrayview.h>                             // for QByteArrayView
#include <qtconfigmacros.h>                             // for QT_CONFIG
#include <qtcore-config.h>                              // for QT_FEATURE_pr...
#include <qtenvironmentvariables.h>                     // for qEnvironmentV...
#include <qtpreprocessorsupport.h>                      // for Q_UNUSED
#include <qtresource.h>                                 // for Q_INIT_RESOURCE
#include <qtsingleapplication/qtsingleapplication.h>    // for QtSingleAppli...
#include <qtwebenginequickglobal.h>                     // for initialize
#include <qtwebenginequickversion.h>                    // for QTWEBENGINEQU...
#include <qtypes.h>                                     // for quint16
#include <stdio.h>                                      // for fprintf, size_t
#include <QApplication>                                 // for QApplication
#include <QByteArray>                                   // for QByteArray
#include <QCommandLineOption>                           // for QCommandLineO...
#include <QCommandLineParser>                           // for QCommandLineP...
#include <QCoreApplication>                             // for QCoreApplication
#include <QDir>                                         // for QDir
#include <QFile>                                        // for QFile
#include <QFileDevice>                                  // for QFileDevice
#include <QFileInfo>                                    // for QFileInfo
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QGuiApplication>                              // for QGuiApplication
#include <QIODevice>                                    // for QIODevice
#include <QIcon>                                        // for QIcon
#include <QList>                                        // for QList
#include <QMessageBox>                                  // for QMessageBox
#include <QMessageLogger>                               // for QtMsgType
#include <QMetaObject>                                  // for QMetaObject
#include <QNetworkProxy>                                // for QNetworkProxy
#include <QObject>                                      // for QObject
#include <QProcess>                                     // for QProcess
#include <QQmlApplicationEngine>                        // for QQmlApplicati...
#include <QQmlFileSelector>                             // for QQmlFileSelector
#include <QQuickStyle>                                  // for QQuickStyle
#include <QQuickWindow>                                 // for QQuickWindow
#include <QSGRendererInterface>                         // for QSGRendererIn...
#include <QStandardPaths>                               // for QStandardPaths
#include <QString>                                      // for operator""_s
#include <QStringList>                                  // for QStringList
#include <QStringLiteral>                               // for qMakeStringPr...
#include <QStyleHints>                                  // for QStyleHints
#include <QTimer>                                       // for QTimer
#include <QUrl>                                         // for QUrl
#include <QVariant>                                     // for QVariant
#include <QtCore>                                       // for argument, qRe...
#include <iostream>                                     // for operator<<
#include <string>                                       // for operator<<
#include "app/rendering/openglfunctions.h"              // for OpenGLFunctions
#include "app/updates/updater.h"                        // for Updater
#include "build_defines.h"                              // for VERSION
#include "headless.h"                                   // for Headless
#include "shared/ui/visualisations/defaultgradients.h"  // for GRADIENT, GRA...
#include "shared/ui/visualisations/defaultpalettes.h"   // for PALETTE, PALE...
#include "shared/utils/apppathname.h"                   // for appPathName
#include "shared/utils/console.h"                       // for enableConsole...
#include "shared/utils/consolecapture.h"                // for captureConsol...
#include "shared/utils/debugger.h"                      // for isDebuggerPre...
#include "shared/utils/macosfileopeneventfilter.h"      // for MacOsFileOpen...
#include "shared/utils/scopetimer.h"                    // for ScopeTimerMan...
#include "shared/utils/signalhandling.h"                // for installSignal...
#include "shared/utils/static_block.h"                  // for execute_stati...
#include "shared/utils/thread.h"                        // for currentThread...
#include "shared/utils/threadpool.h"                    // for ThreadPoolSin...
#include "ui/qml/app/graphia/Utils/preferences.h"       // for definePref, pref
#include "ui/qml/app/graphia/application.h"             // for Application
#include "ui/qml/app/graphia/graphrenderertypes.h"      // for TextState
#include "watchdog.h"                                   // for Watchdog
---


/home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.h should add these lines:
#include <QtGui/qopengl.h>     // for GLuint
#include <stddef.h>            // for size_t

/home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.h:
#include <QtGui/qopengl.h>     // for GLuint
#include <stddef.h>            // for size_t
#include <array>               // for array
#include <condition_variable>  // for condition_variable
#include <mutex>               // for mutex
#include "openglfunctions.h"   // for OpenGLFunctions
---

(/home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.h should add these lines:
#include <qtypes.h>  // for quint32
#include <vector>    // for vector
class QFont;

/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.h should remove these lines:
- #include <QFont>  // lines 25-25
- #include <QFontMetrics>  // lines 27-27
- #include <QGlyphRun>  // lines 26-26
- #include <QVector2D>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/glyphmap.h:
#include <qtypes.h>  // for quint32
#include <QImage>    // for QImage
#include <QString>   // for QString
#include <map>       // for map
#include <mutex>     // for recursive_mutex
#include <vector>    // for vector
class QFont;
---

/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QFont>                                   // for QFont
#include <QFontMetrics>                            // for QFontMetrics
#include <QGlyphRun>                               // for QGlyphRun, QTypeIn...
#include <QList>                                   // for QList
#include <QMessageLogger>                          // for qDebug, qWarning
#include <QPointF>                                 // for QPointF
#include <QRawFont>                                // for QRawFont
#include <QRect>                                   // for QRect
#include <QRectF>                                  // for QRectF
#include <QTextLine>                               // for QTextLine
#include <QTextOption>                             // for QTextOption
#include <QVariant>                                // for QVariant
#include <Qt>                                      // for GlobalColor, FillRule
#include <QtGui>                                   // for QBrush
#include <utility>                                 // for pair, move
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref

/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.cpp should remove these lines:
- #include <memory>  // lines 31-31
- #include "app/preferences.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/glyphmap.cpp:
#include "glyphmap.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QDebug>                                  // for QDebug
#include <QDir>                                    // for QDir
#include <QFont>                                   // for QFont
#include <QFontMetrics>                            // for QFontMetrics
#include <QGlyphRun>                               // for QGlyphRun, QTypeIn...
#include <QGuiApplication>                         // for QGuiApplication
#include <QList>                                   // for QList
#include <QMessageLogger>                          // for qDebug, qWarning
#include <QPainter>                                // for QPainter
#include <QPainterPath>                            // for QPainterPath
#include <QPointF>                                 // for QPointF
#include <QRawFont>                                // for QRawFont
#include <QRect>                                   // for QRect
#include <QRectF>                                  // for QRectF
#include <QTextLayout>                             // for QTextLayout
#include <QTextLine>                               // for QTextLine
#include <QTextOption>                             // for QTextOption
#include <QVariant>                                // for QVariant
#include <Qt>                                      // for GlobalColor, FillRule
#include <QtGui>                                   // for QBrush
#include <algorithm>                               // for max, any_of
#include <utility>                                 // for pair, move
#include "shared/utils/container.h"                // for contains
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
---


/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.h should add these lines:
#include <qtmetamacros.h>                           // for Q_OBJECT, slots
#include <stddef.h>                                 // for size_t
#include "shared/graph/elementid.h"                 // for NodeId, ComponentId
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection
class ComponentMergeSet;
class ComponentSplitSet;
class QPoint;

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.h should remove these lines:
- #include "app/graph/componentmanager.h"  // lines 24-24
- #include "shared/graph/grapharray.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.h:
#include <qtmetamacros.h>                           // for Q_OBJECT, slots
#include <stddef.h>                                 // for size_t
#include "scene.h"                                  // for Scene
#include "shared/graph/elementid.h"                 // for NodeId, ComponentId
#include "transition.h"                             // for Transition
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection
class ComponentMergeSet;
class ComponentSplitSet;
class Graph;  // lines 28-28
class GraphComponentRenderer;  // lines 30-30
class GraphRenderer;  // lines 29-29
class QPoint;
---

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.cpp should add these lines:
#include <qassert.h>                       // for Q_ASSERT
#include <QPoint>                          // for QPoint
#include <QRect>                           // for QRect
#include <QVector3D>                       // for QVector3D, operator+, oper...
#include <QtCore>                          // for operator""_s, ConnectionType
#include <compare>                         // for operator<, strong_ordering
#include <vector>                          // for vector
#include "graph/componentmanager.h"        // for ComponentMergeSet, Compone...
#include "maths/plane.h"                   // for Plane
#include "rendering/camera.h"              // for Camera
#include "rendering/scene.h"               // for Scene
#include "rendering/transition.h"          // for Transition
#include "shared/graph/grapharray.h"       // for ComponentArray
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/movablepointer.h"   // for MovablePointer

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.cpp:
#include "graphcomponentscene.h"
#include <qassert.h>                       // for Q_ASSERT
#include <QPoint>                          // for QPoint
#include <QRect>                           // for QRect
#include <QVector3D>                       // for QVector3D, operator+, oper...
#include <QtCore>                          // for operator""_s, ConnectionType
#include <compare>                         // for operator<, strong_ordering
#include <vector>                          // for vector
#include "app/graph/graph.h"               // for Graph
#include "app/graph/graphmodel.h"          // for GraphModel
#include "app/layout/nodepositions.h"      // for NodePositions
#include "graph/componentmanager.h"        // for ComponentMergeSet, Compone...
#include "graphcomponentrenderer.h"        // for GraphComponentRenderer
#include "graphrenderer.h"                 // for GraphRenderer
#include "maths/plane.h"                   // for Plane
#include "rendering/camera.h"              // for Camera
#include "rendering/scene.h"               // for Scene
#include "rendering/transition.h"          // for Transition
#include "shared/graph/grapharray.h"       // for ComponentArray
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/movablepointer.h"   // for MovablePointer
#include "shared/utils/scope_exit.h"       // for make_scope_exit
---


/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.h should add these lines:
#include <QRectF>                                   // for QRectF
#include <QVector4D>                                // for QVector4D
#include "shared/graph/elementid.h"                 // for NodeId, ComponentId
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection
#include "ui/qml/app/graphia/limitconstants.h"      // for LimitConstants

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.h should remove these lines:
- #include <QColor>  // lines 36-36
- #include <QRect>  // lines 37-37
- #include <memory>  // lines 39-39
- #include "app/maths/boundingbox.h"  // lines 26-26
- #include "graphrenderertypes.h"  // lines 24-24
- #include "limitconstants.h"  // lines 31-31
- #include "shared/graph/grapharray.h"  // lines 29-29
- class Camera;  // lines 45-45
- class Octree;  // lines 46-46

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.h:
#include <QMatrix4x4>                               // for QMatrix4x4
#include <QQuaternion>                              // for QQuaternion
#include <QRectF>                                   // for QRectF
#include <QVector3D>                                // for QVector3D
#include <QVector4D>                                // for QVector4D
#include <vector>                                   // for vector
#include "camera.h"                                 // for Camera
#include "shared/graph/elementid.h"                 // for NodeId, ComponentId
#include "shared/graph/igraph.h"                    // for IEdge
#include "transition.h"                             // for Transition
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection
#include "ui/qml/app/graphia/limitconstants.h"      // for LimitConstants
class GraphModel;  // lines 43-43
class GraphRenderer;  // lines 42-42
class SelectionManager;  // lines 44-44
---

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <QPointF>                                 // for QPointF
#include <QRect>                                   // for QRect
#include <QtCore>                                  // for qFuzzyCompare, Con...
#include <iterator>                                // for back_insert_iterator
#include <limits>                                  // for numeric_limits
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "layout/nodepositions.h"                  // for NodePositions
#include "maths/ray.h"                             // for Ray
#include "rendering/transition.h"                  // for Transition
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/utils/container.h"                // for contains
#include "shared/utils/utils.h"                    // for interpolate

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.cpp should remove these lines:
- #include <QKeyEvent>  // lines 42-42
- #include <QMouseEvent>  // lines 43-43
- #include <mutex>  // lines 47-47
- #include "app/graph/componentmanager.h"  // lines 26-26
- #include "app/layout/layout.h"  // lines 28-28
- #include "app/maths/boundingsphere.h"  // lines 31-31
- #include "app/maths/frustum.h"  // lines 32-32
- #include "app/preferences.h"  // lines 39-39
- #include "app/ui/selectionmanager.h"  // lines 35-35

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.cpp:
#include "graphcomponentrenderer.h"
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <QObject>                                 // for QObject
#include <QPointF>                                 // for QPointF
#include <QRect>                                   // for QRect
#include <QtCore>                                  // for qFuzzyCompare, Con...
#include <QtMath>                                  // for qDegreesToRadians
#include <algorithm>                               // for max, min, clamp
#include <cmath>                                   // for sin
#include <iterator>                                // for back_insert_iterator
#include <limits>                                  // for numeric_limits
#include "app/graph/graph.h"                       // for Graph
#include "app/graph/graphmodel.h"                  // for GraphModel
#include "app/layout/collision.h"                  // for Collision
#include "app/maths/plane.h"                       // for Plane
#include "app/ui/visualisations/elementvisual.h"   // for ElementVisual
#include "camera.h"                                // for Camera
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graphrenderer.h"                         // for GraphRenderer
#include "layout/nodepositions.h"                  // for NodePositions
#include "maths/ray.h"                             // for Ray
#include "rendering/transition.h"                  // for Transition
#include "shared/graph/elementid_debug.h"          // for operator<<
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/utils/container.h"                // for contains
#include "shared/utils/utils.h"                    // for interpolate
---


/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.h should add these lines:
#include <qtmetamacros.h>                           // for Q_OBJECT, slots
#include <QRectF>                                   // for QRectF
#include <QSizeF>                                   // for QSizeF
#include <QString>                                  // for QString
#include <QVariant>                                 // for QVariant
#include "maths/circle.h"                           // for Circle
#include "shared/graph/elementid.h"                 // for ComponentId
#include "ui/qml/app/graphia/Utils/preferences.h"   // for PreferencesWatcher
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection
enum class VisualChangeFlags;

/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.h should remove these lines:
- #include <QRect>  // lines 38-38
- #include <mutex>  // lines 34-34
- #include "app/preferences.h"  // lines 29-29
- #include "shared/graph/igraphmodel.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.h:
#include <qtmetamacros.h>                           // for Q_OBJECT, slots
#include <QPointF>                                  // for QPointF
#include <QRectF>                                   // for QRectF
#include <QSizeF>                                   // for QSizeF
#include <QString>                                  // for QString
#include <QVariant>                                 // for QVariant
#include <atomic>                                   // for atomic_bool
#include <memory>                                   // for unique_ptr
#include <vector>                                   // for vector
#include "app/graph/componentmanager.h"             // for ComponentMergeSet
#include "app/layout/componentlayout.h"             // for ComponentLayoutData
#include "maths/circle.h"                           // for Circle
#include "scene.h"                                  // for Scene
#include "shared/graph/elementid.h"                 // for ComponentId
#include "shared/graph/grapharray.h"                // for ComponentArray
#include "transition.h"                             // for Transition
#include "ui/qml/app/graphia/Utils/preferences.h"   // for PreferencesWatcher
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection
class CommandManager;  // lines 43-43
class Graph;  // lines 41-41
class GraphModel;  // lines 42-42
class GraphRenderer;  // lines 44-44
enum class VisualChangeFlags;
---

/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QQuaternion>                             // for QQuaternion
#include <Qt>                                      // for ConnectionType
#include <iterator>                                // for insert_iterator
#include <map>                                     // for operator==, _Rb_tr...
#include <type_traits>                             // for remove_reference
#include <utility>                                 // for move
#include "graph/componentmanager.h"                // for ComponentMergeSet
#include "layout/componentlayout.h"                // for ComponentLayout
#include "rendering/camera.h"                      // for Camera
#include "rendering/scene.h"                       // for Scene
#include "rendering/transition.h"                  // for Transition
#include "shared/commands/command.h"               // for Command (ptr only)
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/graph/igraphmodel.h"              // for VisualChangeFlags
#include "shared/utils/movablepointer.h"           // for MovablePointer

/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.cpp should remove these lines:
- #include <QPoint>  // lines 38-38
- #include <functional>  // lines 42-42
- #include <stack>  // lines 40-40
- #include "app/layout/powerof2gridcomponentlayout.h"  // lines 27-27
- #include "app/preferences.h"  // lines 36-36

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.cpp:
#include "graphoverviewscene.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QQuaternion>                             // for QQuaternion
#include <Qt>                                      // for ConnectionType
#include <algorithm>                               // for min, clamp, sort, max
#include <iterator>                                // for insert_iterator
#include <map>                                     // for operator==, _Rb_tr...
#include <type_traits>                             // for remove_reference
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "app/commands/commandmanager.h"           // for CommandManager
#include "app/graph/graph.h"                       // for Graph
#include "app/graph/graphmodel.h"                  // for GraphModel
#include "app/layout/circlepackcomponentlayout.h"  // for CirclePackComponen...
#include "app/layout/nodepositions.h"              // for NodePositions
#include "graph/componentmanager.h"                // for ComponentMergeSet
#include "graphcomponentrenderer.h"                // for GraphComponentRend...
#include "graphrenderer.h"                         // for GraphRenderer
#include "layout/componentlayout.h"                // for ComponentLayout
#include "rendering/camera.h"                      // for Camera
#include "rendering/scene.h"                       // for Scene
#include "rendering/transition.h"                  // for Transition
#include "shared/commands/command.h"               // for Command (ptr only)
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/graph/igraphmodel.h"              // for VisualChangeFlags
#include "shared/utils/container.h"                // for contains
#include "shared/utils/flags.h"                    // for Flags
#include "shared/utils/movablepointer.h"           // for MovablePointer
#include "shared/utils/scope_exit.h"               // for make_scope_exit
#include "shared/utils/utils.h"                    // for interpolate
---


/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, slots

/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.h:
#include <qtmetamacros.h>  // for Q_OBJECT, slots
#include <QObject>         // for QObject
class QOpenGLDebugLogger;  // lines 24-24
class QOpenGLDebugMessage;  // lines 25-25
---

/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug
#include <QOpenGLDebugMessage>       // for QOpenGLDebugMessage
#include <QtCore>                    // for ConnectionType, QByteArrayLiteral

/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.cpp:
#include "opengldebuglogger.h"
#include <qassert.h>                 // for Q_ASSERT
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QDebug>                    // for QDebug
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug
#include <QOpenGLContext>            // for QOpenGLContext
#include <QOpenGLDebugLogger>        // for QOpenGLDebugLogger
#include <QOpenGLDebugMessage>       // for QOpenGLDebugMessage
#include <QtCore>                    // for ConnectionType, QByteArrayLiteral
---


/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.h should add these lines:
#include <QtGui/qopengl.h>                          // for GLuint
#include <qtmetamacros.h>                           // for slots, Q_OBJECT
#include <qtypes.h>                                 // for qreal
#include <stddef.h>                                 // for size_t
#include <QColor>                                   // for QColor
#include <QRect>                                    // for QRect
#include <QString>                                  // for QString
#include <QVariant>                                 // for QVariant
#include <mutex>                                    // for mutex, recursive_...
#include "shared/graph/elementid.h"                 // for ComponentId, NodeId
#include "ui/qml/app/graphia/Utils/preferences.h"   // for PreferencesWatcher
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection, TextA...
class QEvent;
class QImage;
class QOpenGLFramebufferObject;
class QVector3D;
class ScreenshotRenderer;

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.h should remove these lines:
- #include <QImage>  // lines 47-47
- #include <QOpenGLBuffer>  // lines 43-43
- #include <QOpenGLVertexArrayObject>  // lines 44-44
- #include <QPainter>  // lines 49-49
- #include <QPixmap>  // lines 48-48
- #include <array>  // lines 56-56
- #include "app/preferences.h"  // lines 39-39
- #include "graphrenderertypes.h"  // lines 25-25
- #include "openglfunctions.h"  // lines 23-23
- class ICommand;  // lines 74-74
- class QOpenGLDebugMessage;  // lines 64-64

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.h:
#include <QtGui/qopengl.h>                          // for GLuint
#include <qtmetamacros.h>                           // for slots, Q_OBJECT
#include <qtypes.h>                                 // for qreal
#include <stddef.h>                                 // for size_t
#include <QColor>                                   // for QColor
#include <QElapsedTimer>                            // for QElapsedTimer
#include <QObject>                                  // for QObject
#include <QOpenGLShaderProgram>                     // for QOpenGLShaderProgram
#include <QQuickFramebufferObject>                  // for QQuickFramebuffer...
#include <QRect>                                    // for QRect
#include <QSize>                                    // for QSize
#include <QString>                                  // for QString
#include <QVariant>                                 // for QVariant
#include <atomic>                                   // for atomic_bool
#include <functional>                               // for function
#include <memory>                                   // for unique_ptr
#include <mutex>                                    // for mutex, recursive_...
#include <queue>                                    // for queue
#include <vector>                                   // for vector
#include "app/graph/qmlelementid.h"                 // for QmlNodeId
#include "doublebufferedtexture.h"                  // for DoubleBufferedTex...
#include "glyphmap.h"                               // for GlyphMap
#include "graphcomponentrenderer.h"                 // for GraphComponentRen...
#include "graphrenderercore.h"                      // for GraphRendererCore
#include "opengldebuglogger.h"                      // for OpenGLDebugLogger
#include "shared/graph/elementid.h"                 // for ComponentId, NodeId
#include "shared/graph/elementid_containers.h"      // for ComponentIdSet
#include "shared/graph/grapharray.h"                // for ComponentArray
#include "shared/utils/deferredexecutor.h"          // for DeferredExecutor
#include "shared/utils/movablepointer.h"            // for MovablePointer
#include "shared/utils/performancecounter.h"        // for PerformanceCounter
#include "transition.h"                             // for Transition
#include "ui/qml/app/graphia/Utils/preferences.h"   // for PreferencesWatcher
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Projection, TextA...
class CommandManager;  // lines 62-62
class Graph;  // lines 59-59
class GraphComponentInteractor;  // lines 72-72
class GraphComponentScene;  // lines 68-68
class GraphDisplay;  // lines 60-60
class GraphModel;  // lines 61-61
class GraphOverviewInteractor;  // lines 71-71
class GraphOverviewScene;  // lines 67-67
class Interactor;  // lines 70-70
class QEvent;
class QImage;
class QOpenGLFramebufferObject;
class QVector3D;
class Scene;  // lines 66-66
class ScreenshotRenderer;
class SelectionManager;  // lines 63-63
---

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.cpp should add these lines:
#include <bits/chrono.h>                              // for seconds
#include <qassert.h>                                  // for Q_ASSERT
#include <qinputdevice.h>                             // for QInputDevice
#include <QDebug>                                     // for QDebug
#include <QMessageLogger>                             // for qWarning
#include <QMouseEvent>                                // for QMouseEvent
#include <QOpenGLFramebufferObject>                   // for QOpenGLFramebuf...
#include <QPoint>                                     // for QPoint
#include <QPointF>                                    // for operator*, QPointF
#include <QVector3D>                                  // for QVector3D, oper...
#include <QWheelEvent>                                // for QWheelEvent
#include <Qt>                                         // for ConnectionType
#include <algorithm>                                  // for remove_if, copy
#include <array>                                      // for array
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, map
#include "graph/elementiddistinctsetcollection.h"     // for MultiElementType
#include "maths/boundingsphere.h"                     // for BoundingSphere
#include "rendering/camera.h"                         // for Camera
#include "rendering/doublebufferedtexture.h"          // for DoubleBufferedT...
#include "rendering/graphcomponentrenderer.h"         // for GraphComponentR...
#include "rendering/graphrenderercore.h"              // for GPUGraphData
#include "rendering/scene.h"                          // for Scene
#include "rendering/transition.h"                     // for Transition
#include "shared/graph/igraph.h"                      // for IEdge
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "shared/utils/qmlenum.h"                     // for normaliseQmlEnum
#include "ui/interactor.h"                            // for Interactor

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.cpp should remove these lines:
- #include <QBuffer>  // lines 54-54
- #include <QFutureWatcher>  // lines 55-55
- #include <QOpenGLDebugLogger>  // lines 48-48
- #include <QOpenGLFramebufferObjectFormat>  // lines 46-46
- #include <QTextLayout>  // lines 53-53
- #include "app/preferences.h"  // lines 25-25
- #include "app/ui/selectionmanager.h"  // lines 36-36

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.cpp:
#include "graphrenderer.h"
#include <bits/chrono.h>                              // for seconds
#include <qassert.h>                                  // for Q_ASSERT
#include <qinputdevice.h>                             // for QInputDevice
#include <QColor>                                     // for QColor
#include <QCoreApplication>                           // for QCoreApplication
#include <QDebug>                                     // for QDebug
#include <QEvent>                                     // for QEvent
#include <QMessageLogger>                             // for qWarning
#include <QMouseEvent>                                // for QMouseEvent
#include <QNativeGestureEvent>                        // for QNativeGestureE...
#include <QObject>                                    // for qobject_cast
#include <QOpenGLFramebufferObject>                   // for QOpenGLFramebuf...
#include <QPoint>                                     // for QPoint
#include <QPointF>                                    // for operator*, QPointF
#include <QQuickOpenGLUtils>                          // for resetOpenGLState
#include <QQuickWindow>                               // for QQuickWindow
#include <QVector3D>                                  // for QVector3D, oper...
#include <QWheelEvent>                                // for QWheelEvent
#include <Qt>                                         // for ConnectionType
#include <algorithm>                                  // for remove_if, copy
#include <array>                                      // for array
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, map
#include <utility>                                    // for move, pair
#include "app/graph/graph.h"                          // for Graph
#include "app/graph/graphmodel.h"                     // for GraphModel
#include "app/layout/nodepositions.h"                 // for NodePositions
#include "app/ui/graphcomponentinteractor.h"          // for GraphComponentI...
#include "app/ui/graphoverviewinteractor.h"           // for GraphOverviewIn...
#include "app/ui/qml/app/graphia/graphdisplay.h"      // for GraphDisplay
#include "app/ui/visualisations/elementvisual.h"      // for ElementVisual
#include "app/ui/visualisations/textvisual.h"         // for TextVisual
#include "glyphmap.h"                                 // for GlyphMap
#include "graph/elementiddistinctsetcollection.h"     // for MultiElementType
#include "graphcomponentscene.h"                      // for GraphComponentS...
#include "graphoverviewscene.h"                       // for GraphOverviewScene
#include "maths/boundingsphere.h"                     // for BoundingSphere
#include "rendering/camera.h"                         // for Camera
#include "rendering/doublebufferedtexture.h"          // for DoubleBufferedT...
#include "rendering/graphcomponentrenderer.h"         // for GraphComponentR...
#include "rendering/graphrenderercore.h"              // for GPUGraphData
#include "rendering/scene.h"                          // for Scene
#include "rendering/transition.h"                     // for Transition
#include "screenshotrenderer.h"                       // for ScreenshotRenderer
#include "shadertools.h"                              // for loadShaderProgram
#include "shared/graph/igraph.h"                      // for IEdge
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/container.h"                   // for vectorFrom
#include "shared/utils/doasyncthen.h"                 // for doAsync, _Then
#include "shared/utils/flags.h"                       // for Flags
#include "shared/utils/qmlenum.h"                     // for normaliseQmlEnum
#include "ui/interactor.h"                            // for Interactor
---


/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should add these lines:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QSurfaceFormat>             // for QSurfaceFormat

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should remove these lines:
- #include <memory>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QOpenGLFunctions_3_3_Core>  // for QOpenGLFunctions_3_3_Core
#include <QString>                    // for QString
#include <QSurfaceFormat>             // for QSurfaceFormat
---

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should add these lines:
#include <qassert.h>              // for Q_ASSERT
#include <QByteArrayDataPtr>      // for QByteArrayLiteral
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp:
#include "openglfunctions.h"
#include <qassert.h>              // for Q_ASSERT
#include <QByteArrayDataPtr>      // for QByteArrayLiteral
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <QOffscreenSurface>      // for QOffscreenSurface
#include <QOpenGLContext>         // for QOpenGLContext
#include <QOpenGLExtraFunctions>  // for QOpenGLExtraFunctions
#include <QSurfaceFormat>         // for QSurfaceFormat
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair
---


/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.h should add these lines:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
class QOpenGLShaderProgram;

/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.h should remove these lines:
- #include <QOpenGLShaderProgram>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.h:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
#include <vector>                    // for vector
class QOpenGLShaderProgram;
---

/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.cpp should add these lines:
#include <qvectornd.h>           // for operator-
#include <QVector3D>             // for QVector3D

/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.cpp:
#include "arrow.h"
#include <qvectornd.h>           // for operator-
#include <QOpenGLShaderProgram>  // for QOpenGLShaderProgram
#include <QVector3D>             // for QVector3D
#include <cmath>                 // for cos, sin
#include <numbers>               // for pi_v
---


/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.h should add these lines:
#include <QtGui/qopengl.h>                          // for GLuint, GLint
#include <stddef.h>                                 // for size_t
#include <QSize>                                    // for QSize
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Shading
class QRect;

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.h should remove these lines:
- #include <QRect>  // lines 34-34
- #include "graphrenderertypes.h"  // lines 23-23
- class ScreenshotRenderer;  // lines 40-40

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.h:
#include <QtGui/qopengl.h>                          // for GLuint, GLint
#include <stddef.h>                                 // for size_t
#include <QMatrix4x4>                               // for QMatrix4x4
#include <QOpenGLBuffer>                            // for QOpenGLBuffer
#include <QOpenGLShaderProgram>                     // for QOpenGLShaderProgram
#include <QOpenGLVertexArrayObject>                 // for QOpenGLVertexArra...
#include <QSize>                                    // for QSize
#include <array>                                    // for array
#include <vector>                                   // for vector
#include "openglfunctions.h"                        // for OpenGLFunctions
#include "primitives/arrow.h"                       // for Arrow
#include "primitives/rectangle.h"                   // for Rectangle
#include "primitives/sphere.h"                      // for Sphere
#include "shared/utils/flags.h"                     // for Flags
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for Shading
class GlyphMap;  // lines 41-41
class QOpenGLContext;  // lines 42-42
class QRect;
---

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <qtypes.h>                                // for uchar
#include <QByteArray>                              // for QByteArray
#include <QDebug>                                  // for QDebug
#include <QImage>                                  // for QImage
#include <QMessageLogger>                          // for qWarning
#include <QPoint>                                  // for QPoint
#include <QRect>                                   // for QRect
#include <QString>                                 // for operator""_s, QString
#include <QVariant>                                // for QVariant
#include <QVector3D>                               // for QVector3D
#include <QtCore>                                  // for qFuzzyCompare, Glo...
#include <algorithm>                               // for min, remove_if, sort
#include <initializer_list>                        // for initializer_list
#include "rendering/openglfunctions.h"             // for OpenGLFunctions
#include "rendering/primitives/arrow.h"            // for Arrow
#include "rendering/primitives/rectangle.h"        // for Rectangle
#include "rendering/primitives/sphere.h"           // for Sphere
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
#include "ui/qml/app/graphia/document.h"           // for Document

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.cpp should remove these lines:
- #include "app/preferences.h"  // lines 21-21
- #include "app/ui/document.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.cpp:
#include "graphrenderercore.h"
#include <qassert.h>                               // for Q_ASSERT
#include <qtypes.h>                                // for uchar
#include <QByteArray>                              // for QByteArray
#include <QColor>                                  // for QColor
#include <QDebug>                                  // for QDebug
#include <QDir>                                    // for QDir
#include <QImage>                                  // for QImage
#include <QMessageLogger>                          // for qWarning
#include <QOpenGLContext>                          // for QOpenGLContext
#include <QPoint>                                  // for QPoint
#include <QRect>                                   // for QRect
#include <QString>                                 // for operator""_s, QString
#include <QVariant>                                // for QVariant
#include <QVector3D>                               // for QVector3D
#include <QtCore>                                  // for qFuzzyCompare, Glo...
#include <algorithm>                               // for min, remove_if, sort
#include <initializer_list>                        // for initializer_list
#include "glyphmap.h"                              // for GlyphMap
#include "rendering/openglfunctions.h"             // for OpenGLFunctions
#include "rendering/primitives/arrow.h"            // for Arrow
#include "rendering/primitives/rectangle.h"        // for Rectangle
#include "rendering/primitives/sphere.h"           // for Sphere
#include "shadertools.h"                           // for loadShaderProgram
#include "shared/rendering/multisamples.h"         // for multisamples
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
#include "ui/qml/app/graphia/document.h"           // for Document
---


/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.h should add these lines:
#include <QtGui/qopengl.h>           // for GLsizei
class QOpenGLShaderProgram;

/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.h should remove these lines:
- #include <QOpenGLShaderProgram>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.h:
#include <QtGui/qopengl.h>           // for GLsizei
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
class QOpenGLShaderProgram;
---

/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.cpp should add these lines:
#include <stddef.h>              // for size_t
#include <QOpenGLShaderProgram>  // for QOpenGLShaderProgram
#include <iterator>              // for begin, end
#include <vector>                // for vector

/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.cpp:
#include "rectangle.h"
#include <stddef.h>              // for size_t
#include <QOpenGLShaderProgram>  // for QOpenGLShaderProgram
#include <array>                 // for array
#include <iterator>              // for begin, end
#include <vector>                // for vector
---


/home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.h should add these lines:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
class QOpenGLShaderProgram;

/home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.h should remove these lines:
- #include <QOpenGLShaderProgram>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.h:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
#include <vector>                    // for vector
class QOpenGLShaderProgram;
---

(/home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.cpp has correct #includes/fwd-decls)


(/home/runner/work/graphia/graphia/source/app/rendering/shadertools.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/rendering/shadertools.cpp should add these lines:
#include <QByteArray>                 // for QByteArray
#include <QMessageLogger>             // for QtMsgType, qFatal, qInstallMess...
#include <QOpenGLShader>              // for QOpenGLShader
#include <string>                     // for allocator, operator<<, string

/home/runner/work/graphia/graphia/source/app/rendering/shadertools.cpp should remove these lines:
- #include <QObject>  // lines 28-28
- #include <QtGlobal>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/shadertools.cpp:
#include "shadertools.h"
#include <QByteArray>                 // for QByteArray
#include <QFile>                      // for QFile
#include <QMessageLogger>             // for QtMsgType, qFatal, qInstallMess...
#include <QOpenGLContext>             // for QOpenGLContext
#include <QOpenGLShader>              // for QOpenGLShader
#include <QOpenGLShaderProgram>       // for QOpenGLShaderProgram
#include <QString>                    // for QString, operator""_s, operator+
#include <QSurfaceFormat>             // for QSurfaceFormat
#include <iostream>                   // for char_traits, basic_ostream, ope...
#include <string>                     // for allocator, operator<<, string
#include "openglfunctions.h"          // for OpenGLFunctions
#include "shared/utils/scope_exit.h"  // for make_scope_exit
---


/home/runner/work/graphia/graphia/source/app/rendering/transition.h should add these lines:
#include <qassert.h>       // for Q_ASSERT
#include <qtmetamacros.h>  // for Q_OBJECT, emit, signals
#include <vector>          // for vector

/home/runner/work/graphia/graphia/source/app/rendering/transition.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/transition.h:
#include <qassert.h>       // for Q_ASSERT
#include <qtmetamacros.h>  // for Q_OBJECT, emit, signals
#include <QObject>         // for QObject
#include <functional>      // for function
#include <limits>          // for numeric_limits
#include <vector>          // for vector
---

/home/runner/work/graphia/graphia/source/app/rendering/transition.cpp should add these lines:

/home/runner/work/graphia/graphia/source/app/rendering/transition.cpp should remove these lines:
- #include <QDebug>  // lines 24-24
- #include "shared/utils/utils.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/transition.cpp:
#include "transition.h"
#include <algorithm>                  // for clamp
#include "app/maths/interpolation.h"  // for Interpolation
---


/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.h should add these lines:
#include <boost/variant/variant.hpp>            // for variant

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.h should remove these lines:
- #include <boost/variant.hpp>  // lines 31-31
- #include "shared/attributes/valuetype.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.h:
#include <QString>                              // for QString
#include <QVariantMap>                          // for QVariantMap
#include <boost/variant/recursive_wrapper.hpp>  // for recursive_wrapper
#include <boost/variant/variant.hpp>            // for variant
#include <variant>                              // for variant
#include <vector>                               // for vector
#include "app/attributes/condtionfnops.h"       // for Equality, Logical, Unary
struct GraphTransformConfig::CompoundCondition;  // lines 59-59
---

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.cpp should add these lines:
#include <QChar>                                         // for operator!=
#include <QList>                                         // for QList
#include <QMap>                                          // for QMap
#include <QMessageLogger>                                // for qFatal
#include <QStringList>                                   // for QStringList
#include <QVariant>                                      // for QVariant
#include <algorithm>                                     // for find_if
#include <boost/variant/detail/apply_visitor_unary.hpp>  // for apply_visitor
#include <map>                                           // for map, operator==
namespace ConditionFnOp { enum class Equality; }
namespace ConditionFnOp { enum class Numerical; }
namespace ConditionFnOp { enum class String; }

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.cpp:
#include "graphtransformconfig.h"
#include <QChar>                                         // for operator!=
#include <QList>                                         // for QList
#include <QMap>                                          // for QMap
#include <QMessageLogger>                                // for qFatal
#include <QObject>                                       // for QObject
#include <QStringList>                                   // for QStringList
#include <QVariant>                                      // for QVariant
#include <QVariantList>                                  // for QVariantList
#include <algorithm>                                     // for find_if
#include <boost/variant/detail/apply_visitor_unary.hpp>  // for apply_visitor
#include <map>                                           // for map, operator==
#include "app/attributes/attribute.h"                    // for Attribute
#include "graphtransformconfigparser.h"                  // for GraphTransfo...
#include "shared/utils/container.h"                      // for contains
namespace ConditionFnOp { enum class Equality; }
namespace ConditionFnOp { enum class Numerical; }
namespace ConditionFnOp { enum class String; }
---


/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.h should add these lines:
#include <QtGui/qopengl.h>           // for GLuint
#include <qtmetamacros.h>            // for Q_OBJECT, signals
#include <QString>                   // for QString
#include <vector>                    // for vector
class GraphModel;
class GraphRenderer;
class QImage;
class QPoint;
class QSize;

/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.h should remove these lines:
- #include "app/graph/graphmodel.h"  // lines 22-22
- #include "graphrenderer.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.h:
#include <QtGui/qopengl.h>           // for GLuint
#include <qtmetamacros.h>            // for Q_OBJECT, signals
#include <QObject>                   // for QObject
#include <QString>                   // for QString
#include <vector>                    // for vector
#include "graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "graphrenderercore.h"       // for GraphRendererCore
class GraphModel;
class GraphRenderer;
class QImage;
class QPoint;
class QSize;
---

/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.cpp should add these lines:
#include <stddef.h>                                // for size_t
#include <QByteArray>                              // for QByteArray
#include <QColor>                                  // for QColor
#include <QDebug>                                  // for QDebug
#include <QImage>                                  // for QImage
#include <QMatrix4x4>                              // for operator*, QMatrix4x4
#include <QMessageLogger>                          // for qWarning
#include <QPainter>                                // for QPainter
#include <QPixmap>                                 // for QPixmap
#include <QPoint>                                  // for QPoint
#include <QPointF>                                 // for operator*, QPointF
#include <QRect>                                   // for QRect
#include <QRectF>                                  // for QRectF
#include <QSize>                                   // for QSize, operator*
#include <QSizeF>                                  // for QSizeF
#include <QVariant>                                // for QVariant
#include <array>                                   // for array
#include <cmath>                                   // for ceil
#include <memory>                                  // for unique_ptr
#include "rendering/camera.h"                      // for Camera
#include "rendering/glyphmap.h"                    // for GlyphMap
#include "rendering/graphcomponentrenderer.h"      // for GraphComponentRend...
#include "rendering/graphrenderer.h"               // for GraphRenderer
#include "rendering/graphrenderercore.h"           // for GPUGraphData, Grap...
#include "shared/graph/grapharray.h"               // for ComponentArray
#include "shared/utils/movablepointer.h"           // for MovablePointer
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref

/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.cpp should remove these lines:
- #include <QDir>  // lines 32-32
- #include "app/graph/graph.h"  // lines 21-21
- #include "app/preferences.h"  // lines 26-26
- #include "app/ui/document.h"  // lines 28-28
- #include "app/ui/visualisations/elementvisual.h"  // lines 29-29
- #include "graphcomponentscene.h"  // lines 23-23
- #include "graphoverviewscene.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.cpp:
#include "screenshotrenderer.h"
#include <stddef.h>                                // for size_t
#include <QBuffer>                                 // for QBuffer
#include <QByteArray>                              // for QByteArray
#include <QColor>                                  // for QColor
#include <QDebug>                                  // for QDebug
#include <QImage>                                  // for QImage
#include <QMatrix4x4>                              // for operator*, QMatrix4x4
#include <QMessageLogger>                          // for qWarning
#include <QPainter>                                // for QPainter
#include <QPixmap>                                 // for QPixmap
#include <QPoint>                                  // for QPoint
#include <QPointF>                                 // for operator*, QPointF
#include <QQuickOpenGLUtils>                       // for resetOpenGLState
#include <QRect>                                   // for QRect
#include <QRectF>                                  // for QRectF
#include <QSize>                                   // for QSize, operator*
#include <QSizeF>                                  // for QSizeF
#include <QVariant>                                // for QVariant
#include <array>                                   // for array
#include <cmath>                                   // for ceil
#include <memory>                                  // for unique_ptr
#include "rendering/camera.h"                      // for Camera
#include "rendering/glyphmap.h"                    // for GlyphMap
#include "rendering/graphcomponentrenderer.h"      // for GraphComponentRend...
#include "rendering/graphrenderer.h"               // for GraphRenderer
#include "rendering/graphrenderercore.h"           // for GPUGraphData, Grap...
#include "shared/graph/grapharray.h"               // for ComponentArray
#include "shared/utils/movablepointer.h"           // for MovablePointer
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref
---


(/home/runner/work/graphia/graphia/source/app/tracking.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/tracking.cpp should add these lines:
#include <bits/chrono.h>                           // for operator""s
#include <QByteArray>                              // for QByteArray
#include <QList>                                   // for QList
#include <QMessageLogger>                          // for qDebug
#include <QUrl>                                    // for QUrl
#include <QVariant>                                // for QVariant
#include <json.hpp>                                // for basic_json, json_ref
#include <string>                                  // for basic_string
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref, prefExists

/home/runner/work/graphia/graphia/source/app/tracking.cpp should remove these lines:
- #include <QStringList>  // lines 41-41
- #include <chrono>  // lines 47-47
- #include "app/preferences.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/tracking.cpp:
#include "tracking.h"
#include <bits/chrono.h>                           // for operator""s
#include <json_helper.h>                           // for json
#include <QByteArray>                              // for QByteArray
#include <QCryptographicHash>                      // for QCryptographicHash
#include <QDebug>                                  // for QDebug
#include <QEventLoop>                              // for QEventLoop
#include <QHostInfo>                               // for QHostInfo
#include <QHttpMultiPart>                          // for QHttpMultiPart
#include <QHttpPart>                               // for QHttpPart
#include <QList>                                   // for QList
#include <QLocale>                                 // for QLocale
#include <QMessageLogger>                          // for qDebug
#include <QNetworkAccessManager>                   // for QNetworkAccessManager
#include <QNetworkReply>                           // for QNetworkReply
#include <QNetworkRequest>                         // for QNetworkRequest
#include <QObject>                                 // for QObject
#include <QRegularExpression>                      // for QRegularExpression
#include <QStandardPaths>                          // for QStandardPaths
#include <QString>                                 // for QString, operator""_s
#include <QSysInfo>                                // for QSysInfo
#include <QTimer>                                  // for QTimer
#include <QUrl>                                    // for QUrl
#include <QVariant>                                // for QVariant
#include <json.hpp>                                // for basic_json, json_ref
#include <string>                                  // for basic_string
#include <thread>                                  // for thread
#include "build_defines.h"                         // for VERSION
#include "shared/utils/container.h"                // for contains
#include "ui/qml/app/graphia/Utils/preferences.h"  // for pref, prefExists
---


/home/runner/work/graphia/graphia/source/app/transform/graphtransform.h should add these lines:
#include <utility>                                                // for for...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class TransformInfo;

/home/runner/work/graphia/graphia/source/app/transform/graphtransform.h should remove these lines:
- #include "shared/attributes/iattribute.h"  // lines 25-25
- #include "shared/graph/elementid.h"  // lines 22-22
- #include "shared/graph/elementtype.h"  // lines 23-23
- #include "transforminfo.h"  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransform.h:
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include <utility>                                                // for for...
#include <vector>                                                 // for vector
#include "graphtransformattributeparameter.h"                     // for Gra...
#include "graphtransformconfig.h"                                 // for Gra...
#include "graphtransformparameter.h"                              // for Gra...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "shared/utils/cancellable.h"                             // for Can...
#include "shared/utils/flags.h"                                   // for Flags
#include "shared/utils/progressable.h"                            // for Pro...
class GraphModel;  // lines 41-41
class TransformInfo;
class TransformedGraph;  // lines 42-42
---

/home/runner/work/graphia/graphia/source/app/transform/graphtransform.cpp should add these lines:
#include <QList>                                         // for QList
#include <QMetaType>                                     // for QMetaType
#include <QObject>                                       // for QObject
#include <QVariant>                                      // for QVariant
#include <algorithm>                                     // for find_if, any_of
#include "shared/utils/passkey.h"                        // for PassKey
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformconfig.h"              // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
#include "ui/qml/app/graphia/alert.h"                    // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/graphtransform.cpp should remove these lines:
- #include "app/graph/graph.h"  // lines 22-22
- #include "shared/commands/icommand.h"  // lines 25-25
- #include "shared/utils/container.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransform.cpp:
#include "graphtransform.h"
#include <QList>                                         // for QList
#include <QMetaType>                                     // for QMetaType
#include <QObject>                                       // for QObject
#include <QVariant>                                      // for QVariant
#include <algorithm>                                     // for find_if, any_of
#include "app/graph/graphmodel.h"                        // for GraphModel
#include "shared/utils/passkey.h"                        // for PassKey
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformconfig.h"              // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
#include "transformedgraph.h"                            // for TransformedG...
#include "ui/qml/app/graphia/alert.h"                    // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transformcache.h should add these lines:
#include <QString>                     // for QString
#include <map>                         // for map
#include <memory>                      // for unique_ptr, make_unique, opera...
#include <utility>                     // for move

/home/runner/work/graphia/graphia/source/app/transform/transformcache.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformcache.h:
#include <QString>                     // for QString
#include <map>                         // for map
#include <memory>                      // for unique_ptr, make_unique, opera...
#include <utility>                     // for move
#include <vector>                      // for vector
#include "app/attributes/attribute.h"  // for Attribute
#include "app/graph/mutablegraph.h"    // for MutableGraph
#include "graphtransformconfig.h"      // for GraphTransformConfig
class GraphModel;  // lines 29-29
class TransformedGraph;  // lines 28-28
---

/home/runner/work/graphia/graphia/source/app/transform/transformcache.cpp should add these lines:
#include "attributes/attribute.h"            // for Attribute
#include "graph/mutablegraph.h"              // for MutableGraph
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transformcache.cpp should remove these lines:
- #include "shared/utils/container_combine.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformcache.cpp:
#include "transformcache.h"
#include <algorithm>                         // for find_if, any_of
#include "app/graph/graphmodel.h"            // for GraphModel
#include "app/transform/transformedgraph.h"  // for TransformedGraph
#include "attributes/attribute.h"            // for Attribute
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/utils/container.h"          // for contains, keysFor, setIn...
#include "shared/utils/iterator_range.h"     // for iterator_range, make_ite...
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
---


/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.h should add these lines:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <stddef.h>                                // for size_t
#include <map>                                     // for map
#include <memory>                                  // for unique_ptr
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType (...
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
class IEdge;
class INode;
template <typename T> class PassKey;

/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.h should remove these lines:
- #include <QObject>  // lines 33-33
- #include <functional>  // lines 37-37
- #include "app/attributes/attribute.h"  // lines 31-31
- #include "shared/utils/passkey.h"  // lines 29-29
- class ICommand;  // lines 42-42

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformedgraph.h:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <stddef.h>                                // for size_t
#include <QString>                                 // for QString
#include <QStringList>                             // for QStringList
#include <atomic>                                  // for atomic_bool
#include <map>                                     // for map
#include <memory>                                  // for unique_ptr
#include <mutex>                                   // for mutex
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "app/graph/graph.h"                       // for Edge, Graph, Node
#include "app/graph/mutablegraph.h"                // for MutableGraph
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType (...
#include "graphtransform.h"                        // for GraphTransform
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/grapharray.h"               // for EdgeArray, NodeArray
#include "transformcache.h"                        // for TransformCache
class GraphModel;  // lines 41-41
class IEdge;
class INode;
template <typename T> class PassKey;
---

/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.cpp should add these lines:
#include <QList>                             // for QList
#include <Qt>                                // for ConnectionType
#include <compare>                           // for operator<, strong_ordering
#include "attributes/attribute.h"            // for Attribute
#include "graph/graph.h"                     // for Graph
#include "graph/mutablegraph.h"              // for MutableGraph
#include "transform/graphtransform.h"        // for GraphTransform, Identity...
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformcache.h"        // for TransformCache
class IMutableGraph;

/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.cpp should remove these lines:
- #include <functional>  // lines 29-29
- #include "app/graph/componentmanager.h"  // lines 21-21
- #include "shared/commands/icommand.h"  // lines 24-24
- #include "shared/utils/container_combine.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformedgraph.cpp:
#include "transformedgraph.h"
#include <QList>                             // for QList
#include <Qt>                                // for ConnectionType
#include <compare>                           // for operator<, strong_ordering
#include "app/graph/graphmodel.h"            // for AttributeChangesTracker
#include "attributes/attribute.h"            // for Attribute
#include "graph/graph.h"                     // for Graph
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/utils/container.h"          // for contains, keysFor, remov...
#include "shared/utils/string.h"             // for toQStringVector
#include "transform/graphtransform.h"        // for GraphTransform, Identity...
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformcache.h"        // for TransformCache
class IMutableGraph;
---


/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.h should add these lines:
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
namespace ConditionFnOp { enum class Equality; }
namespace ConditionFnOp { enum class Logical; }
namespace ConditionFnOp { enum class Numerical; }
namespace ConditionFnOp { enum class String; }
namespace ConditionFnOp { enum class Unary; }

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.h should remove these lines:
- #include "shared/attributes/valuetype.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.h:
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include "graphtransformconfig.h"                             // for GraphTr...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
namespace ConditionFnOp { enum class Equality; }
namespace ConditionFnOp { enum class Logical; }
namespace ConditionFnOp { enum class Numerical; }
namespace ConditionFnOp { enum class String; }
namespace ConditionFnOp { enum class Unary; }
---

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.cpp should add these lines:
#include <QChar>
#include <QList>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/string/symbols.hpp>
#include <string>
#include <vector>
#include "attributes/condtionfnops.h"
#include "transform/graphtransformconfig.h"

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.cpp should remove these lines:
- #include <QRegularExpression>  // lines 27-27
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 24-24
- #include <boost/spirit/home/x3.hpp>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.cpp:
#include "graphtransformconfigparser.h"
#include <boost/boost_spirit_qstring_adapter.h>
#include <QChar>
#include <QDebug>
#include <QList>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/string/symbols.hpp>
#include <string>
#include <vector>
#include "attributes/condtionfnops.h"
#include "transform/graphtransformconfig.h"
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.h should remove these lines:
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.cpp should add these lines:
#include <stddef.h>                                               // for size_t
#include <QMessageLogger>                                         // for qFatal
#include <map>                                                    // for map
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...

/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.cpp should remove these lines:
- #include <QRegularExpression>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.cpp:
#include "averageattributetransform.h"
#include <stddef.h>                                               // for size_t
#include <QMessageLogger>                                         // for qFatal
#include <QObject>                                                // for QOb...
#include <map>                                                    // for map
#include <memory>                                                 // for mak...
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.h should remove these lines:
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/redirects.h"                             // for redir...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.cpp should add these lines:
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...

/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.cpp:
#include "attributesynthesistransform.h"
#include <QObject>                                                // for QOb...
#include <QRegularExpression>                                     // for QRe...
#include <memory>                                                 // for mak...
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/utils/typeidentity.h"                            // for Typ...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.h should add these lines:
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.h:
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include "app/transform/graphtransform.h"                         // for Gra...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "shared/utils/redirects.h"                               // for red...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <algorithm>                         // for copy
#include <atomic>                            // for atomic_int, __atomic_base
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "shared/graph/elementid.h"          // for NodeId, EdgeId, ElementId
#include "transform/graphtransform.h"        // for GraphTransform
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.cpp should remove these lines:
- #include <map>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.cpp:
#include "betweennesstransform.h"
#include <stddef.h>                          // for size_t
#include <algorithm>                         // for copy
#include <atomic>                            // for atomic_int, __atomic_base
#include <cstdint>                           // for int64_t
#include <queue>                             // for queue
#include <stack>                             // for stack
#include <thread>                            // for thread
#include <vector>                            // for vector
#include "app/graph/graphmodel.h"            // for GraphModel
#include "app/transform/transformedgraph.h"  // for TransformedGraph
#include "attributes/attribute.h"            // for Attribute
#include "shared/graph/elementid.h"          // for NodeId, EdgeId, ElementId
#include "shared/graph/grapharray.h"         // for NodeArray, GenericGraphA...
#include "shared/utils/threadpool.h"         // for parallel_for
#include "transform/graphtransform.h"        // for GraphTransform
struct GraphTransformConfig;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.h should remove these lines:
- #include <vector>  // lines 25-25
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.cpp should add these lines:
#include <functional>                                             // for ope...
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...

/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.cpp should remove these lines:
- #include <algorithm>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.cpp:
#include "conditionalattributetransform.h"
#include <QObject>                                                // for QOb...
#include <functional>                                             // for ope...
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "app/attributes/conditionfncreator.h"                    // for Cre...
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/redirects.h"                             // for redir...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.cpp should add these lines:
#include <functional>                           // for function, operator==
#include <vector>                               // for vector
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.cpp should remove these lines:
- #include "app/graph/graphmodel.h"  // lines 22-22
- #include "shared/utils/string.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.cpp:
#include "contractbyattributetransform.h"
#include <QObject>                              // for QObject
#include <functional>                           // for function, operator==
#include <vector>                               // for vector
#include "app/attributes/conditionfncreator.h"  // for CreateConditionFnFor
#include "app/transform/transformedgraph.h"     // for TransformedGraph
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.h should remove these lines:
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.cpp should add these lines:
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...

/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.cpp should remove these lines:
- #include <QRegularExpression>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.cpp:
#include "combineattributestransform.h"
#include <QObject>                                                // for QOb...
#include <memory>                                                 // for mak...
#include <type_traits>                                            // for rem...
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/grapharray.h"                              // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/utils/typeidentity.h"                            // for Typ...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.h should add these lines:
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.h:
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include "app/transform/graphtransform.h"                         // for Gra...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.cpp should add these lines:
#include <algorithm>                            // for max
#include <atomic>                               // for atomic_int, __atomic_...
#include <limits>                               // for numeric_limits
#include <vector>                               // for vector
#include "attributes/attribute.h"               // for Attribute
#include "shared/graph/elementid.h"             // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"  // for NodeIdMap
#include "shared/graph/grapharray.h"            // for NodeArray, GenericGra...
#include "shared/graph/igraph.h"                // for IEdge
#include "transform/graphtransform.h"           // for GraphTransform
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.cpp should remove these lines:
- #include <map>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.cpp:
#include "eccentricitytransform.h"
#include <algorithm>                            // for max
#include <atomic>                               // for atomic_int, __atomic_...
#include <limits>                               // for numeric_limits
#include <queue>                                // for priority_queue
#include <vector>                               // for vector
#include "app/graph/graphmodel.h"               // for GraphModel
#include "app/transform/transformedgraph.h"     // for TransformedGraph
#include "attributes/attribute.h"               // for Attribute
#include "shared/graph/elementid.h"             // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"  // for NodeIdMap
#include "shared/graph/grapharray.h"            // for NodeArray, GenericGra...
#include "shared/graph/igraph.h"                // for IEdge
#include "shared/utils/threadpool.h"            // for parallel_for
#include "transform/graphtransform.h"           // for GraphTransform
struct GraphTransformConfig;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.h should add these lines:
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <memory>                                             // for unique_ptr
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "transform/graphtransformparameter.h"                // for GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.h:
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <memory>                                             // for unique_ptr
#include "app/transform/graphtransform.h"                     // for GraphTr...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "transform/graphtransformparameter.h"                // for GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <algorithm>                         // for max
#include <variant>                           // for get
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId
#include "shared/graph/grapharray.h"         // for EdgeArray
#include "shared/graph/igraph.h"             // for INode
#include "transform/graphtransform.h"        // for GraphTransform
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.cpp:
#include "edgereductiontransform.h"
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <algorithm>                         // for max
#include <memory>                            // for make_unique, unique_ptr
#include <random>                            // for mt19937, uniform_int_dis...
#include <variant>                           // for get
#include <vector>                            // for vector
#include "app/transform/transformedgraph.h"  // for TransformedGraph
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId
#include "shared/graph/grapharray.h"         // for EdgeArray
#include "shared/graph/igraph.h"             // for INode
#include "transform/graphtransform.h"        // for GraphTransform
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/utils/redirects.h"                             // for redir...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.cpp should add these lines:
#include <functional>                           // for function, operator==
#include <vector>                               // for vector
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.cpp should remove these lines:
- #include "app/graph/graphmodel.h"  // lines 22-22
- #include "shared/utils/string.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.cpp:
#include "edgecontractiontransform.h"
#include <QObject>                              // for QObject
#include <functional>                           // for function, operator==
#include <vector>                               // for vector
#include "app/attributes/conditionfncreator.h"  // for CreateConditionFnFor
#include "app/transform/transformedgraph.h"     // for TransformedGraph
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.h should remove these lines:
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QMessageLogger>                          // for qFatal
#include <type_traits>                             // for remove_reference
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "shared/graph/grapharray.h"               // for ElementIdArray
#include "transform/graphtransform.h"              // for GraphTransform
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"              // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.cpp should remove these lines:
- #include "shared/utils/typeidentity.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.cpp:
#include "forwardmultielementattributetransform.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QMessageLogger>                          // for qFatal
#include <QObject>                                 // for QObject
#include <memory>                                  // for make_unique, uniqu...
#include <type_traits>                             // for remove_reference
#include <vector>                                  // for vector
#include "app/graph/graphmodel.h"                  // for GraphModel
#include "app/transform/transformedgraph.h"        // for TransformedGraph
#include "attributes/attribute.h"                  // for Attribute
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "shared/graph/grapharray.h"               // for ElementIdArray
#include "shared/utils/msvcwarningsuppress.h"      // for MSVC_WARNING_SUPPR...
#include "transform/graphtransform.h"              // for GraphTransform
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"              // for AlertType, Alert
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.h should remove these lines:
- #include <vector>  // lines 25-25
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.cpp should add these lines:
#include <functional>                           // for function, operator==
#include <map>                                  // for operator==
#include <vector>                               // for vector
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.cpp should remove these lines:
- #include "app/graph/graphmodel.h"  // lines 22-22
- #include "shared/utils/string.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.cpp:
#include "separatebyattributetransform.h"
#include <QObject>                              // for QObject
#include <functional>                           // for function, operator==
#include <map>                                  // for operator==
#include <vector>                               // for vector
#include "app/attributes/conditionfncreator.h"  // for CreateConditionFnFor
#include "app/transform/transformedgraph.h"     // for TransformedGraph
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.h should add these lines:
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.h:
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/redirects.h"                             // for redir...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.cpp should add these lines:
#include <stdint.h>                                               // for uin...
#include <cstddef>                                                // for size_t
#include <iterator>                                               // for dis...
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "graph/mutablegraph.h"                                   // for Mut...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/graph/grapharray.h"                              // for Edg...
#include "shared/graph/igraph.h"                                  // for IEdge
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...

/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.cpp should remove these lines:
- #include <functional>  // lines 26-26
- #include "shared/utils/container.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.cpp:
#include "knntransform.h"
#include <stdint.h>                                               // for uin...
#include <QObject>                                                // for QOb...
#include <algorithm>                                              // for par...
#include <cstddef>                                                // for size_t
#include <iterator>                                               // for dis...
#include <memory>                                                 // for mak...
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "graph/mutablegraph.h"                                   // for Mut...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/graph/grapharray.h"                              // for Edg...
#include "shared/graph/igraph.h"                                  // for IEdge
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for make_...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for make_...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/redirects.h"                             // for redir...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.cpp should add these lines:
#include <qassert.h>                                              // for Q_A...
#include <stddef.h>                                               // for size_t
#include <stdint.h>                                               // for uin...
#include <compare>                                                // for ope...
#include <iterator>                                               // for bac...
#include <numeric>                                                // for acc...
#include <utility>                                                // for pair
#include <variant>                                                // for get
#include "attributes/attribute.h"                                 // for Att...
#include "graph/elementiddistinctsetcollection.h"                 // for Mul...
#include "graph/graph.h"                                          // for Edge
#include "graph/mutablegraph.h"                                   // for Mut...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
class IMutableGraph;

/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.cpp:
#include "louvaintransform.h"
#include <qassert.h>                                              // for Q_A...
#include <stddef.h>                                               // for size_t
#include <stdint.h>                                               // for uin...
#include <algorithm>                                              // for copy
#include <cmath>                                                  // for log10
#include <compare>                                                // for ope...
#include <iterator>                                               // for bac...
#include <map>                                                    // for map
#include <numeric>                                                // for acc...
#include <utility>                                                // for pair
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "graph/elementiddistinctsetcollection.h"                 // for Mul...
#include "graph/graph.h"                                          // for Edge
#include "graph/mutablegraph.h"                                   // for Mut...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/grapharray.h"                              // for Nod...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/utils/container.h"                               // for con...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
class IMutableGraph;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.h should add these lines:
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.h:
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/redirects.h"                             // for redir...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.cpp should add these lines:
#include <stdint.h>                                               // for uin...
#include <cstddef>                                                // for size_t
#include <iterator>                                               // for dis...
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "graph/mutablegraph.h"                                   // for Mut...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/graph/grapharray.h"                              // for Edg...
#include "shared/graph/igraph.h"                                  // for IEdge
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...

/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.cpp should remove these lines:
- #include <functional>  // lines 26-26
- #include "shared/utils/container.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.cpp:
#include "percentnntransform.h"
#include <stdint.h>                                               // for uin...
#include <QObject>                                                // for QOb...
#include <algorithm>                                              // for par...
#include <cstddef>                                                // for size_t
#include <iterator>                                               // for dis...
#include <memory>                                                 // for mak...
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "graph/mutablegraph.h"                                   // for Mut...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/graph/grapharray.h"                              // for Edg...
#include "shared/graph/igraph.h"                                  // for IEdge
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.h should remove these lines:
- #include <vector>  // lines 25-25
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.cpp should add these lines:
#include <stdint.h>                             // for uint64_t
#include <functional>                           // for function, operator==
#include <map>                                  // for operator==
#include <vector>                               // for vector
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for NodeId, EdgeId, Compo...
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.cpp should remove these lines:
- #include <algorithm>  // lines 30-30
- #include "app/graph/graphmodel.h"  // lines 23-23
- #include "shared/utils/string.h"  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.cpp:
#include "filtertransform.h"
#include <stdint.h>                             // for uint64_t
#include <QObject>                              // for QObject
#include <functional>                           // for function, operator==
#include <map>                                  // for operator==
#include <vector>                               // for vector
#include "app/attributes/conditionfncreator.h"  // for CreateConditionFnFor
#include "app/graph/componentmanager.h"         // for ComponentManager
#include "app/graph/graphcomponent.h"           // for GraphComponent
#include "app/transform/transformedgraph.h"     // for TransformedGraph
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for NodeId, EdgeId, Compo...
#include "shared/utils/utils.h"                 // for exclusiveOr
#include "transform/graphtransform.h"           // for GraphTransform
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/qml/app/graphia/alert.h"           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.h should add these lines:
#include <QList>                                              // for QList
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include <memory>                                             // for unique_ptr
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "transform/graphtransformparameter.h"                // for GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.h:
#include <QList>                                              // for QList
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include <memory>                                             // for unique_ptr
#include "app/transform/graphtransform.h"                     // for GraphTr...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "shared/utils/redirects.h"                           // for redirec...
#include "transform/graphtransformparameter.h"                // for GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.cpp should add these lines:
#include <stdint.h>                          // for uint64_t
#include <algorithm>                         // for copy
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ComponentId
#include "shared/graph/grapharray.h"         // for NodeArray, EdgeArray
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransform.h"        // for GraphTransform
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.cpp:
#include "spanningtreetransform.h"
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <algorithm>                         // for copy
#include <deque>                             // for deque
#include <memory>                            // for make_unique, unique_ptr
#include <vector>                            // for vector
#include "app/graph/componentmanager.h"      // for ComponentManager
#include "app/graph/graphcomponent.h"        // for GraphComponent
#include "app/transform/transformedgraph.h"  // for TransformedGraph
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ComponentId
#include "shared/graph/grapharray.h"         // for NodeArray, EdgeArray
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransform.h"        // for GraphTransform
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.h should add these lines:
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <memory>                                               // for uniqu...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.h should remove these lines:
- #include "app/attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.h:
#include <QList>                                                // for QList
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <QStringList>                                          // for QStri...
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformattributeparameter.h"         // for Graph...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.cpp should add these lines:
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
class GraphTransform;

/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.cpp:
#include "typecasttransform.h"
#include <QObject>                                                // for QOb...
#include <memory>                                                 // for mak...
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/elementid.h"                               // for EdgeId
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransformconfig.h"                       // for Gra...
#include "ui/qml/app/graphia/alert.h"                             // for Ale...
class GraphTransform;
class TransformedGraph;  // lines 27-27
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.h should add these lines:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.h:
#include <QObject>                                              // for QObject
#include <QString>                                              // for QString
#include <memory>                                               // for uniqu...
#include "app/transform/graphtransform.h"                       // for Graph...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/redirects.h"                             // for redir...
#include "transform/graphtransformparameter.h"                  // for Graph...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.cpp should add these lines:
#include <bits/std_abs.h>                                         // for abs
#include <blaze/math/Matrix.h>                                    // for ope...
#include <blaze/math/StorageOrder.h>                              // for col...
#include <blaze/math/TransposeFlag.h>                             // for col...
#include <blaze/math/dense/DynamicVector.h>                       // for Dyn...
#include <blaze/math/expressions/SMatForEachExpr.h>               // for SMa...
#include <blaze/math/functors/Pow.h>                              // for Pow
#include <blaze/math/simd/SIMDTrait.h>                            // for SIM...
#include <blaze/math/smp/default/Functions.h>                     // for set...
#include <blaze/math/sparse/CompressedMatrix.h>                   // for Com...
#include <blaze/util/Types.h>                                     // for size_t
#include <qassert.h>                                              // for Q_A...
#include <stdint.h>                                               // for uin...
#include <QMessageLogger>                                         // for qDebug
#include <atomic>                                                 // for atomic
#include <cmath>                                                  // for pow
#include <cstddef>                                                // for size_t
#include <iterator>                                               // for inp...
#include <limits>                                                 // for num...
#include <sstream>                                                // for bas...
#include <string>                                                 // for cha...
#include <utility>                                                // for move
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/graph/grapharray.h"                              // for Nod...
#include "shared/graph/igraph.h"                                  // for IEdge
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...

/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.cpp should remove these lines:
- #include <blaze/Blaze.h>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.cpp:
#include "mcltransform.h"
#include <bits/std_abs.h>                                         // for abs
#include <blaze/math/Matrix.h>                                    // for ope...
#include <blaze/math/StorageOrder.h>                              // for col...
#include <blaze/math/TransposeFlag.h>                             // for col...
#include <blaze/math/dense/DynamicVector.h>                       // for Dyn...
#include <blaze/math/expressions/SMatForEachExpr.h>               // for SMa...
#include <blaze/math/functors/Pow.h>                              // for Pow
#include <blaze/math/simd/SIMDTrait.h>                            // for SIM...
#include <blaze/math/smp/default/Functions.h>                     // for set...
#include <blaze/math/sparse/CompressedMatrix.h>                   // for Com...
#include <blaze/util/Types.h>                                     // for size_t
#include <qassert.h>                                              // for Q_A...
#include <stdint.h>                                               // for uin...
#include <QDebug>                                                 // for QDebug
#include <QElapsedTimer>                                          // for QEl...
#include <QMessageLogger>                                         // for qDebug
#include <algorithm>                                              // for nth...
#include <atomic>                                                 // for atomic
#include <cmath>                                                  // for pow
#include <cstddef>                                                // for size_t
#include <iterator>                                               // for inp...
#include <limits>                                                 // for num...
#include <map>                                                    // for all...
#include <set>                                                    // for set
#include <sstream>                                                // for bas...
#include <string>                                                 // for cha...
#include <thread>                                                 // for thread
#include <utility>                                                // for move
#include <variant>                                                // for get
#include <vector>                                                 // for vector
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "app/transform/transformedgraph.h"                       // for Tra...
#include "attributes/attribute.h"                                 // for Att...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/graph/grapharray.h"                              // for Nod...
#include "shared/graph/igraph.h"                                  // for IEdge
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/utils/threadpool.h"                              // for par...
#include "transform/graphtransform.h"                             // for Gra...
#include "transform/graphtransformconfig.h"                       // for Gra...
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.h should add these lines:
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.h:
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <memory>                                                 // for uni...
#include "app/transform/graphtransform.h"                         // for Gra...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "shared/utils/redirects.h"                               // for red...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.cpp should add these lines:
#include <bits/std_abs.h>                               // for abs
#include <blaze/math/Vector.h>                          // for operator<<
#include <blaze/math/dense/DenseIterator.h>             // for operator!=
#include <blaze/math/dense/DenseVector.h>               // for max
#include <blaze/math/dense/DynamicVector.h>             // for DynamicVector
#include <blaze/math/expressions/DVecDVecSubExpr.h>     // for DVecDVecSubExpr
#include <blaze/math/expressions/DVecForEachExpr.h>     // for DVecForEachExpr
#include <blaze/math/expressions/DVecScalarDivExpr.h>   // for operator/
#include <blaze/math/expressions/DVecScalarMultExpr.h>  // for DVecScalarMul...
#include <blaze/math/expressions/DenseVector.h>         // for DenseVector
#include <blaze/math/functors/Abs.h>                    // for Abs
#include <blaze/math/simd/Multiplication.h>             // for operator*
#include <blaze/math/simd/SIMDTrait.h>                  // for SIMDTraitBase...
#include <blaze/math/smp/default/DenseVector.h>         // for smpAssign
#include <stddef.h>                                     // for size_t
#include <QMessageLogger>                               // for qDebug
#include <algorithm>                                    // for copy
#include <deque>                                        // for deque, operat...
#include <limits>                                       // for numeric_limits
#include <sstream>                                      // for basic_strings...
#include <vector>                                       // for vector
#include "attributes/attribute.h"                       // for Attribute
#include "shared/attributes/iattribute.h"               // for IAttribute
#include "shared/attributes/iattributerange.h"          // for IAttributeRange
#include "shared/graph/elementid.h"                     // for NodeId, Compo...
#include "shared/graph/elementid_containers.h"          // for NodeIdMap
#include "shared/graph/grapharray.h"                    // for NodeArray
#include "shared/graph/igraph.h"                        // for IEdge, INode
#include "shared/graph/igraphcomponent.h"               // for IGraphComponent
#include "transform/graphtransform.h"                   // for GraphTransform
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.cpp should remove these lines:
- #include <blaze/Blaze.h>  // lines 27-27
- #include <map>  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.cpp:
#include "pageranktransform.h"
#include <bits/std_abs.h>                               // for abs
#include <blaze/math/Vector.h>                          // for operator<<
#include <blaze/math/dense/DenseIterator.h>             // for operator!=
#include <blaze/math/dense/DenseVector.h>               // for max
#include <blaze/math/dense/DynamicVector.h>             // for DynamicVector
#include <blaze/math/expressions/DVecDVecSubExpr.h>     // for DVecDVecSubExpr
#include <blaze/math/expressions/DVecForEachExpr.h>     // for DVecForEachExpr
#include <blaze/math/expressions/DVecScalarDivExpr.h>   // for operator/
#include <blaze/math/expressions/DVecScalarMultExpr.h>  // for DVecScalarMul...
#include <blaze/math/expressions/DenseVector.h>         // for DenseVector
#include <blaze/math/functors/Abs.h>                    // for Abs
#include <blaze/math/simd/Multiplication.h>             // for operator*
#include <blaze/math/simd/SIMDTrait.h>                  // for SIMDTraitBase...
#include <blaze/math/smp/default/DenseVector.h>         // for smpAssign
#include <stddef.h>                                     // for size_t
#include <QDebug>                                       // for QDebug
#include <QElapsedTimer>                                // for QElapsedTimer
#include <QMessageLogger>                               // for qDebug
#include <algorithm>                                    // for copy
#include <deque>                                        // for deque, operat...
#include <limits>                                       // for numeric_limits
#include <sstream>                                      // for basic_strings...
#include <vector>                                       // for vector
#include "app/graph/componentmanager.h"                 // for ComponentManager
#include "app/graph/graphcomponent.h"                   // for GraphComponent
#include "app/graph/graphmodel.h"                       // for GraphModel
#include "app/transform/transformedgraph.h"             // for TransformedGraph
#include "attributes/attribute.h"                       // for Attribute
#include "shared/attributes/iattribute.h"               // for IAttribute
#include "shared/attributes/iattributerange.h"          // for IAttributeRange
#include "shared/graph/elementid.h"                     // for NodeId, Compo...
#include "shared/graph/elementid_containers.h"          // for NodeIdMap
#include "shared/graph/grapharray.h"                    // for NodeArray
#include "shared/graph/igraph.h"                        // for IEdge, INode
#include "shared/graph/igraphcomponent.h"               // for IGraphComponent
#include "transform/graphtransform.h"                   // for GraphTransform
struct GraphTransformConfig;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.h should add these lines:
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <memory>                                             // for unique_ptr
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "transform/graphtransformparameter.h"                // for GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.h:
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <memory>                                             // for unique_ptr
#include "app/transform/graphtransform.h"                     // for GraphTr...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "transform/graphtransformparameter.h"                // for GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <variant>                           // for get
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId
#include "shared/graph/igraph.h"             // for INode
#include "shared/utils/progressable.h"       // for Progressable
#include "transform/graphtransform.h"        // for GraphTransform
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.cpp:
#include "removeleavestransform.h"
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <memory>                            // for make_unique, unique_ptr
#include <variant>                           // for get
#include <vector>                            // for vector
#include "app/transform/transformedgraph.h"  // for TransformedGraph
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId
#include "shared/graph/igraph.h"             // for INode
#include "shared/utils/progressable.h"       // for Progressable
#include "transform/graphtransform.h"        // for GraphTransform
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
---


/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QRectF>                               // for QRectF
#include <Qt>                                   // for KeyboardModifiers
#include "shared/graph/elementid.h"             // for NodeId, ComponentId (...

/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.h should remove these lines:
- #include <QNativeGestureEvent>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.h:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QPoint>                               // for QPoint
#include <QRectF>                               // for QRectF
#include <Qt>                                   // for KeyboardModifiers
#include "interactor.h"                         // for Interactor
#include "shared/graph/elementid.h"             // for NodeId, ComponentId (...
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class BaseFrustum;  // lines 34-34
class CommandManager;  // lines 30-30
class GraphComponentRenderer;  // lines 33-33
class GraphModel;  // lines 29-29
class GraphRenderer;  // lines 32-32
class SelectionManager;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.cpp should add these lines:
#include <qassert.h>                                  // for Q_ASSERT
#include <QFlags>                                     // for QFlags
#include <QMatrix4x4>                                 // for operator*, QMat...
#include <QQuaternion>                                // for QQuaternion
#include <QRect>                                      // for QRect
#include <QVector2D>                                  // for QVector2D
#include <QVector3D>                                  // for QVector3D
#include <QVector4D>                                  // for QVector4D
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, _Rb...
#include <vector>                                     // for vector
#include "layout/nodepositions.h"                     // for NodePositions
#include "maths/conicalfrustum.h"                     // for ConicalFrustum
#include "maths/ray.h"                                // for Ray
#include "rendering/transition.h"                     // for Transition
#include "shared/commands/command.h"                  // for Command (ptr only)
#include "shared/commands/icommandmanager.h"          // for ExecutePolicy
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "ui/interactor.h"                            // for Interactor
#include "ui/qml/app/graphia/graphrenderertypes.h"    // for Projection

/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.cpp should remove these lines:
- #include <QKeyEvent>  // lines 42-42
- #include <QMouseEvent>  // lines 41-41
- #include "app/rendering/graphcomponentscene.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.cpp:
#include "graphcommoninteractor.h"
#include <qassert.h>                                  // for Q_ASSERT
#include <QFlags>                                     // for QFlags
#include <QMatrix4x4>                                 // for operator*, QMat...
#include <QQuaternion>                                // for QQuaternion
#include <QRect>                                      // for QRect
#include <QVector2D>                                  // for QVector2D
#include <QVector3D>                                  // for QVector3D
#include <QVector4D>                                  // for QVector4D
#include <QtMath>                                     // for qRadiansToDegrees
#include <algorithm>                                  // for clamp, min
#include <cmath>                                      // for sqrt, atan2, acos
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, _Rb...
#include <vector>                                     // for vector
#include "app/commands/commandmanager.h"              // for CommandManager
#include "app/commands/selectnodescommand.h"          // for SelectNodesCommand
#include "app/graph/graph.h"                          // for Graph
#include "app/graph/graphmodel.h"                     // for GraphModel
#include "app/layout/collision.h"                     // for Collision
#include "app/maths/frustum.h"                        // for BaseFrustum
#include "app/rendering/camera.h"                     // for Camera
#include "app/rendering/graphcomponentrenderer.h"     // for GraphComponentR...
#include "app/rendering/graphrenderer.h"              // for GraphRenderer
#include "app/ui/visualisations/elementvisual.h"      // for ElementVisual
#include "layout/nodepositions.h"                     // for NodePositions
#include "maths/conicalfrustum.h"                     // for ConicalFrustum
#include "maths/ray.h"                                // for Ray
#include "rendering/transition.h"                     // for Transition
#include "selectionmanager.h"                         // for SelectionManager
#include "shared/commands/command.h"                  // for Command (ptr only)
#include "shared/commands/icommandmanager.h"          // for ExecutePolicy
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "shared/utils/utils.h"                       // for normaliseAngle
#include "ui/interactor.h"                            // for Interactor
#include "ui/qml/app/graphia/graphrenderertypes.h"    // for Projection
---


/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QRectF>                               // for QRectF
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class ComponentId;
class GraphComponentRenderer;
class GraphComponentScene;
class GraphRenderer;

/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.h should remove these lines:
- #include <memory>  // lines 27-27
- #include "app/rendering/graphcomponentscene.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.h:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QPoint>                               // for QPoint
#include <QRectF>                               // for QRectF
#include "graphcommoninteractor.h"              // for GraphCommonInteractor
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class CommandManager;  // lines 30-30
class ComponentId;
class GraphComponentRenderer;
class GraphComponentScene;
class GraphModel;  // lines 29-29
class GraphRenderer;
class SelectionManager;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.cpp should add these lines:
#include <QPointF>                                 // for QPointF
#include "rendering/transition.h"                  // for Transition
#include "shared/graph/elementid.h"                // for NodeId, ComponentI...
#include "ui/graphcommoninteractor.h"              // for GraphCommonInteractor

/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.cpp should remove these lines:
- #include <QKeyEvent>  // lines 39-39
- #include <QMouseEvent>  // lines 38-38
- #include <QtMath>  // lines 40-40
- #include <cmath>  // lines 41-41
- #include "app/commands/commandmanager.h"  // lines 22-22
- #include "app/graph/graph.h"  // lines 29-29
- #include "app/graph/graphmodel.h"  // lines 30-30
- #include "app/layout/collision.h"  // lines 36-36
- #include "app/maths/boundingsphere.h"  // lines 32-32
- #include "app/maths/plane.h"  // lines 34-34
- #include "selectionmanager.h"  // lines 20-20

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.cpp:
#include "graphcomponentinteractor.h"
#include <QPointF>                                 // for QPointF
#include "app/maths/frustum.h"                     // for Frustum
#include "app/rendering/camera.h"                  // for Camera
#include "app/rendering/graphcomponentrenderer.h"  // for GraphComponentRend...
#include "app/rendering/graphcomponentscene.h"     // for GraphComponentScene
#include "app/rendering/graphrenderer.h"           // for GraphRenderer
#include "rendering/transition.h"                  // for Transition
#include "shared/graph/elementid.h"                // for NodeId, ComponentI...
#include "ui/graphcommoninteractor.h"              // for GraphCommonInteractor
---


/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QRectF>                               // for QRectF
#include "shared/graph/elementid.h"             // for ComponentId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class GraphComponentRenderer;
class GraphRenderer;

/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.h should remove these lines:
- #include <memory>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.h:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QPoint>                               // for QPoint
#include <QRectF>                               // for QRectF
#include "graphcommoninteractor.h"              // for GraphCommonInteractor
#include "shared/graph/elementid.h"             // for ComponentId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class CommandManager;  // lines 30-30
class GraphComponentRenderer;
class GraphModel;  // lines 28-28
class GraphOverviewScene;  // lines 29-29
class GraphRenderer;
class SelectionManager;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.cpp should add these lines:
#include <QPointF>                             // for QPointF
#include <vector>                              // for vector
#include "maths/circle.h"                      // for Circle
#include "maths/frustum.h"                     // for Frustum
#include "rendering/camera.h"                  // for Camera
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "shared/graph/grapharray.h"           // for GenericGraphArray
#include "ui/graphcommoninteractor.h"          // for GraphCommonInteractor

/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.cpp should remove these lines:
- #include <QMouseEvent>  // lines 30-30
- #include <QWheelEvent>  // lines 31-31
- #include "app/commands/commandmanager.h"  // lines 22-22
- #include "selectionmanager.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.cpp:
#include "graphoverviewinteractor.h"
#include <QPointF>                             // for QPointF
#include <vector>                              // for vector
#include "app/graph/graph.h"                   // for Graph
#include "app/graph/graphmodel.h"              // for GraphModel
#include "app/rendering/graphoverviewscene.h"  // for GraphOverviewScene
#include "app/rendering/graphrenderer.h"       // for GraphRenderer
#include "maths/circle.h"                      // for Circle
#include "maths/frustum.h"                     // for Frustum
#include "rendering/camera.h"                  // for Camera
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "shared/graph/grapharray.h"           // for GenericGraphArray
#include "ui/graphcommoninteractor.h"          // for GraphCommonInteractor
---


/home/runner/work/graphia/graphia/source/app/ui/searchmanager.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <QList>                                // for QList
#include "ui/qml/app/graphia/findtypes.h"       // for FindSelectStyle, Find...

/home/runner/work/graphia/graphia/source/app/ui/searchmanager.h should remove these lines:
- #include "findtypes.h"  // lines 22-22
- #include "shared/graph/elementid.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/searchmanager.h:
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <mutex>                                // for recursive_mutex
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/utils/flags.h"                 // for Flags
#include "ui/qml/app/graphia/findtypes.h"       // for FindSelectStyle, Find...
class GraphModel;  // lines 34-34
---

/home/runner/work/graphia/graphia/source/app/ui/searchmanager.cpp should add these lines:
#include <functional>                                             // for ope...
#include <map>                                                    // for ope...
#include <utility>                                                // for move
#include <vector>                                                 // for vector
#include "attributes/attribute.h"                                 // for Att...
#include "attributes/condtionfnops.h"                             // for String
#include "graph/elementiddistinctsetcollection.h"                 // for Con...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/grapharray.h"                              // for Nod...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...

/home/runner/work/graphia/graphia/source/app/ui/searchmanager.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/searchmanager.cpp:
#include "searchmanager.h"
#include <QRegularExpression>                                     // for QRe...
#include <algorithm>                                              // for any_of
#include <functional>                                             // for ope...
#include <map>                                                    // for ope...
#include <utility>                                                // for move
#include <vector>                                                 // for vector
#include "app/attributes/conditionfncreator.h"                    // for Cre...
#include "app/graph/graph.h"                                      // for Graph
#include "app/graph/graphmodel.h"                                 // for Gra...
#include "attributes/attribute.h"                                 // for Att...
#include "attributes/condtionfnops.h"                             // for String
#include "graph/elementiddistinctsetcollection.h"                 // for Con...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/grapharray.h"                              // for Nod...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/utils/container.h"                               // for set...
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.h should add these lines:
#include <QVariantMap>                                          // for QVari...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.h:
#include <QString>                                              // for QString
#include <QVariantMap>                                          // for QVari...
#include <vector>                                               // for vector
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/ui/visualisations/colorgradient.h"             // for Color...
#include "shared/ui/visualisations/colorpalette.h"              // for Color...
#include "visualisationchannel.h"                               // for Visua...
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.cpp should add these lines:
#include <QColor>                                    // for QColor
#include <QMap>                                      // for QMap
#include <QVariant>                                  // for QVariant
#include "ui/qml/app/graphia/Utils/preferences.h"    // for pref
#include "ui/visualisations/elementvisual.h"         // for ElementVisual
#include "ui/visualisations/visualisationchannel.h"  // for VisualisationCha...

/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.cpp should remove these lines:
- #include "app/preferences.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.cpp:
#include "colorvisualisationchannel.h"
#include <QColor>                                    // for QColor
#include <QMap>                                      // for QMap
#include <QObject>                                   // for QObject
#include <QVariant>                                  // for QVariant
#include "ui/qml/app/graphia/Utils/preferences.h"    // for pref
#include "ui/visualisations/elementvisual.h"         // for ElementVisual
#include "ui/visualisations/visualisationchannel.h"  // for VisualisationCha...
---


/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.h should add these lines:
#include <qtmetamacros.h>                       // for emit, Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QString>                              // for QString
#include <vector>                               // for vector
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet

/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.h should remove these lines:
- #include <memory>  // lines 27-27
- #include "shared/utils/container.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/selectionmanager.h:
#include <qtmetamacros.h>                       // for emit, Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <mutex>                                // for recursive_mutex, uniq...
#include <vector>                               // for vector
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/ui/iselectionmanager.h"        // for ISelectionManager
class GraphModel;  // lines 30-30
---

/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.cpp should add these lines:
#include <map>                                     // for operator==, _Rb_tr...
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/graph/grapharray.h"               // for GenericGraphArray
#include "shared/utils/container.h"                // for contains

/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.cpp should remove these lines:
- #include <algorithm>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/selectionmanager.cpp:
#include "selectionmanager.h"
#include <array>                                   // for array
#include <map>                                     // for operator==, _Rb_tr...
#include <utility>                                 // for move
#include "app/graph/graph.h"                       // for Graph
#include "app/graph/graphmodel.h"                  // for GraphModel
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/graph/grapharray.h"               // for GenericGraphArray
#include "shared/utils/container.h"                // for contains
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.h should add these lines:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.h:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "visualisationchannel.h"                               // for Visua...
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.cpp should add these lines:
#include "ui/visualisations/elementvisual.h"  // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.cpp:
#include "sizevisualisationchannel.h"
#include <QObject>                            // for QObject
#include "ui/visualisations/elementvisual.h"  // for ElementVisual
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisual.h has correct #includes/fwd-decls)

(/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisual.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.h should add these lines:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.h:
#include <QString>                                              // for QString
#include "colorvisualisationchannel.h"                          // for Color...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.cpp should add these lines:
#include <QColor>                                    // for QColor
#include <QLatin1Char>                               // for StringLiterals
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
#include "ui/visualisations/elementvisual.h"         // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.cpp:
#include "textcolorvisualisationchannel.h"
#include <QColor>                                    // for QColor
#include <QLatin1Char>                               // for StringLiterals
#include <QObject>                                   // for QObject
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
#include "ui/visualisations/elementvisual.h"         // for ElementVisual
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.h should add these lines:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.h:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "visualisationchannel.h"                               // for Visua...
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.cpp should add these lines:
#include "ui/visualisations/elementvisual.h"  // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.cpp:
#include "textsizevisualisationchannel.h"
#include <QObject>                            // for QObject
#include "ui/visualisations/elementvisual.h"  // for ElementVisual
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.h should add these lines:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
class VisualisationInfo;
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.h:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "visualisationchannel.h"                               // for Visua...
class VisualisationInfo;
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.cpp should add these lines:
#include <QVariant>                                 // for QVariant
#include "ui/qml/app/graphia/Utils/preferences.h"   // for pref
#include "ui/qml/app/graphia/alert.h"               // for AlertType
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for TextState
#include "ui/visualisations/elementvisual.h"        // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.cpp should remove these lines:
- #include "app/preferences.h"  // lines 26-26
- #include "app/rendering/graphrenderer.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.cpp:
#include "textvisualisationchannel.h"
#include <QObject>                                  // for QObject
#include <QVariant>                                 // for QVariant
#include "shared/utils/string.h"                    // for formatNumberScien...
#include "ui/qml/app/graphia/Utils/preferences.h"   // for pref
#include "ui/qml/app/graphia/alert.h"               // for AlertType
#include "ui/qml/app/graphia/graphrenderertypes.h"  // for TextState
#include "ui/visualisations/elementvisual.h"        // for ElementVisual
#include "visualisationinfo.h"                      // for VisualisationInfo
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.h should add these lines:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "ui/visualisations/textvisual.h"                       // for TextV...
class GraphModel;
class TransformedGraph;
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.h:
#include <QString>                                              // for QString
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "ui/visualisations/textvisual.h"                       // for TextV...
#include "visualisationchannel.h"                               // for Visua...
class GraphModel;
class TransformedGraph;
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <algorithm>                               // for copy, max
#include <functional>                              // for operator==, function
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "attributes/condtionfnops.h"              // for Equality
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.cpp:
#include "sharedtextvisualisationchannel.h"
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <QObject>                                 // for QObject
#include <algorithm>                               // for copy, max
#include <functional>                              // for operator==, function
#include <vector>                                  // for vector
#include "app/attributes/conditionfncreator.h"     // for CreateConditionFnFor
#include "app/graph/graphmodel.h"                  // for GraphModel, TextVi...
#include "app/graph/mutablegraph.h"                // for MutableGraph
#include "app/transform/graphtransformconfig.h"    // for GraphTransformConfig
#include "app/transform/transformedgraph.h"        // for TransformedGraph
#include "attributes/attribute.h"                  // for Attribute
#include "attributes/condtionfnops.h"              // for Equality
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"     // for EdgeIdSet
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.h should add these lines:
#include <stddef.h>                                             // for size_t
#include <QMap>                                                 // for QMap
#include <QMessageLogger>                                       // for qFatal
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.h should remove these lines:
- #include "app/ui/visualisations/elementvisual.h"  // lines 22-22
- #include "shared/attributes/valuetype.h"  // lines 24-24
- #include "shared/graph/elementtype.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.h:
#include <stddef.h>                                             // for size_t
#include <QMap>                                                 // for QMap
#include <QMessageLogger>                                       // for qFatal
#include <QString>                                              // for QString
#include <QVariantMap>                                          // for QVari...
#include <map>                                                  // for map
#include <vector>                                               // for vector
#include "app/ui/visualisations/textvisual.h"                   // for TextV...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
class GraphModel;  // lines 34-34
class TransformedGraph;  // lines 35-35
class VisualisationInfo;  // lines 33-33
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.cpp should add these lines:
#include <algorithm>                 // for max

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.cpp:
#include "visualisationchannel.h"
#include <algorithm>                 // for max
#include "shared/utils/container.h"  // for contains
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.cpp should add these lines:
#include <QChar>                     // for operator!=, QChar
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QVariant>                  // for QVariant
#include <QVariantList>              // for QVariantList
#include <map>                       // for map, operator==

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.cpp:
#include "visualisationconfig.h"
#include <QChar>                     // for operator!=, QChar
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QObject>                   // for QObject
#include <QVariant>                  // for QVariant
#include <QVariantList>              // for QVariantList
#include <map>                       // for map, operator==
#include "shared/utils/container.h"  // for contains, setsDiffer
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.cpp should add these lines:
#include <QMessageLogger>             // for qDebug
#include <QString>                    // for QString, operator""_s
#include <Qt>                         // for CaseSensitivity

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.cpp:
#include "visualisationmapping.h"
#include <json_helper.h>              // for parseJsonFrom
#include <QDebug>                     // for QDebug
#include <QMessageLogger>             // for qDebug
#include <QString>                    // for QString, operator""_s
#include <Qt>                         // for CaseSensitivity
#include <algorithm>                  // for clamp
#include <cmath>                      // for pow
#include "shared/utils/container.h"   // for contains
#include "shared/utils/statistics.h"  // for Statistics
#include "shared/utils/utils.h"       // for normalise
---


/home/runner/work/graphia/graphia/source/app/watchdog.h should add these lines:
#include <bits/chrono.h>     // for seconds, steady_clock
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <qtmetamacros.h>    // for Q_OBJECT, signals, slots
class QTimer;

/home/runner/work/graphia/graphia/source/app/watchdog.h should remove these lines:
- #include <QTimer>  // lines 24-24
- #include <chrono>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/watchdog.h:
#include <bits/chrono.h>     // for seconds, steady_clock
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <qtmetamacros.h>    // for Q_OBJECT, signals, slots
#include <QObject>           // for QObject
#include <QProcess>          // for QProcess
#include <QThread>           // for QThread
class QTimer;
---

/home/runner/work/graphia/graphia/source/app/watchdog.cpp should add these lines:
#include <qoverload.h>                       // for QOverload
#include <QList>                             // for QList
#include <QMessageLogger>                    // for qWarning
#include <QString>                           // for QString, operator""_s
#include <QStringList>                       // for QStringList
#include <QTimer>                            // for QTimer
#include <compare>                           // for operator>, partial_ordering
#include <ratio>                             // for ratio
#include <string>                            // for operator<<
#include "ui/qml/app/graphia/application.h"  // for Application

/home/runner/work/graphia/graphia/source/app/watchdog.cpp should remove these lines:
- #include "app/application.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/watchdog.cpp:
#include "watchdog.h"
#include <qoverload.h>                       // for QOverload
#include <valgrind/valgrind.h>               // for RUNNING_ON_VALGRIND
#include <QCoreApplication>                  // for QCoreApplication
#include <QDebug>                            // for QDebug
#include <QList>                             // for QList
#include <QMessageBox>                       // for QMessageBox
#include <QMessageLogger>                    // for qWarning
#include <QProcess>                          // for QProcess
#include <QString>                           // for QString, operator""_s
#include <QStringList>                       // for QStringList
#include <QTimer>                            // for QTimer
#include <compare>                           // for operator>, partial_ordering
#include <iostream>                          // for char_traits, basic_ostream
#include <ratio>                             // for ratio
#include <string>                            // for operator<<
#include "shared/utils/fatalerror.h"         // for FATAL_ERROR
#include "shared/utils/thread.h"             // for setCurrentThreadName
#include "ui/qml/app/graphia/application.h"  // for Application
---


/home/runner/work/graphia/graphia/source/app/updates/updater.h should add these lines:
#include <qtmetamacros.h>                          // for slots, Q_OBJECT
#include <QVariant>                                // for QVariant
#include "ui/qml/app/graphia/Utils/preferences.h"  // for PreferencesWatcher

/home/runner/work/graphia/graphia/source/app/updates/updater.h should remove these lines:
- #include <atomic>  // lines 30-30
- #include "app/preferences.h"  // lines 22-22
- class QByteArray;  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/updates/updater.h:
#include <qtmetamacros.h>                          // for slots, Q_OBJECT
#include <QNetworkAccessManager>                   // for QNetworkAccessManager
#include <QObject>                                 // for QObject
#include <QString>                                 // for QString
#include <QStringList>                             // for QStringList
#include <QTimer>                                  // for QTimer
#include <QVariant>                                // for QVariant
#include "ui/qml/app/graphia/Utils/preferences.h"  // for PreferencesWatcher
class QNetworkReply;  // lines 33-33
---

/home/runner/work/graphia/graphia/source/app/updates/updater.cpp should add these lines:
#include <qassert.h>                         // for Q_ASSERT
#include <qtconfigmacros.h>                  // for QT_CONFIG
#include <qtcore-config.h>                   // for QT_FEATURE_process
#include <qtypes.h>                          // for qint64
#include <QByteArray>                        // for QByteArray, operator+
#include <QFileInfo>                         // for QFileInfo
#include <QFlags>                            // for QFlags
#include <QList>                             // for QList
#include <QRegularExpression>                // for QRegularExpression
#include <json.hpp>                          // for basic_json, operator<<
#include <string>                            // for operator<<, basic_string
#include "ui/qml/app/graphia/application.h"  // for Application

/home/runner/work/graphia/graphia/source/app/updates/updater.cpp should remove these lines:
- #include <QFutureWatcher>  // lines 40-40
- #include <QHttpMultiPart>  // lines 45-45
- #include <QHttpPart>  // lines 46-46
- #include <utility>  // lines 50-50
- #include <vector>  // lines 49-49
- #include "app/application.h"  // lines 25-25
- #include "preferences.h"  // lines 26-26
- #include "shared/utils/string.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/updates/updater.cpp:
#include "updater.h"
#include <json_helper.h>                     // for json
#include <qassert.h>                         // for Q_ASSERT
#include <qtconfigmacros.h>                  // for QT_CONFIG
#include <qtcore-config.h>                   // for QT_FEATURE_process
#include <qtypes.h>                          // for qint64
#include <QByteArray>                        // for QByteArray, operator+
#include <QDir>                              // for QDir, operator|
#include <QFile>                             // for QFile
#include <QFileInfo>                         // for QFileInfo
#include <QFlags>                            // for QFlags
#include <QList>                             // for QList
#include <QNetworkReply>                     // for QNetworkReply
#include <QNetworkRequest>                   // for QNetworkRequest
#include <QProcess>                          // for QProcess
#include <QRegularExpression>                // for QRegularExpression
#include <QStandardPaths>                    // for QStandardPaths
#include <QStringList>                       // for QStringList
#include <QTemporaryFile>                    // for QTemporaryFile
#include <QTimer>                            // for QTimer
#include <QUrl>                              // for QUrl
#include <iostream>                          // for char_traits, basic_ostream
#include <json.hpp>                          // for basic_json, operator<<
#include <string>                            // for operator<<, basic_string
#include "build_defines.h"                   // for VERSION
#include "shared/updates/updates.h"          // for latestUpdateJson, clearU...
#include "shared/utils/checksum.h"           // for sha256ChecksumMatchesFile
#include "shared/utils/container.h"          // for contains
#include "shared/utils/doasyncthen.h"        // for doAsync, _Then
#include "ui/qml/app/graphia/application.h"  // for Application
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.cpp should add these lines:
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <string>
#include <vector>
#include "ui/visualisations/visualisationconfig.h"

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.cpp should remove these lines:
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 24-24
- #include <boost/spirit/home/x3.hpp>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.cpp:
#include "visualisationconfigparser.h"
#include <boost/boost_spirit_qstring_adapter.h>
#include <QDebug>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <string>
#include <vector>
#include "ui/visualisations/visualisationconfig.h"
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/changelog.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/changelog.h should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/changelog.h:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals
#include <QObject>            // for QObject
#include <QString>            // for QString
#include <QTemporaryDir>      // for QTemporaryDir
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/changelog.cpp should add these lines:
#include <QIODevice>                 // for QIODevice
#include <json.hpp>                  // for basic_json, iter_impl

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/changelog.cpp should remove these lines:
- #include <QQmlEngine>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/changelog.cpp:
#include "changelog.h"
#include <json_helper.h>             // for json
#include <QByteArray>                // for QByteArray
#include <QFile>                     // for QFile
#include <QIODevice>                 // for QIODevice
#include <QRegularExpression>        // for QRegularExpression
#include <json.hpp>                  // for basic_json, iter_impl
#include "shared/updates/updates.h"  // for changeLogJson
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availableattributesmodel.h should add these lines:
#include <qqmlintegration.h>                                      // for QML...
#include <qtmetamacros.h>                                         // for Q_I...
#include <QByteArray>                                             // for QBy...
#include <QModelIndex>                                            // for QMo...
#include <QString>                                                // for QSt...
#include <QStringList>                                            // for QSt...
#include <QtCore>                                                 // for Ite...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availableattributesmodel.h should remove these lines:
- #include <QObject>  // lines 26-26
- #include <QQmlEngine>  // lines 27-27
- #include "shared/attributes/iattribute.h"  // lines 23-23
- #include "shared/attributes/valuetype.h"  // lines 24-24
- #include "shared/graph/elementtype.h"  // lines 22-22
- class Attribute;  // lines 35-35

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availableattributesmodel.h:
#include <qqmlintegration.h>                                      // for QML...
#include <qtmetamacros.h>                                         // for Q_I...
#include <QAbstractItemModel>                                     // for QAb...
#include <QByteArray>                                             // for QBy...
#include <QList>                                                  // for QList
#include <QModelIndex>                                            // for QMo...
#include <QString>                                                // for QSt...
#include <QStringList>                                            // for QSt...
#include <QVariant>                                               // for QVa...
#include <QtCore>                                                 // for Ite...
#include <set>                                                    // for set
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
class GraphModel;  // lines 34-34
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availableattributesmodel.cpp should add these lines:
#include <qassert.h>                   // for Q_ASSERT
#include <utility>                     // for as_const
#include <vector>                      // for vector
#include "app/attributes/attribute.h"  // for Attribute
#include "shared/utils/flags.h"        // for Flags

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availableattributesmodel.cpp should remove these lines:
- #include "app/application.h"  // lines 21-21
- #include "shared/graph/elementtype.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availableattributesmodel.cpp:
#include "availableattributesmodel.h"
#include <qassert.h>                   // for Q_ASSERT
#include <utility>                     // for as_const
#include <vector>                      // for vector
#include "app/attributes/attribute.h"  // for Attribute
#include "app/graph/graphmodel.h"      // for GraphModel
#include "shared/utils/container.h"    // for contains
#include "shared/utils/flags.h"        // for Flags
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availabletransformsmodel.h should add these lines:
#include <qqmlintegration.h>    // for QML_ELEMENT
#include <qtmetamacros.h>       // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractListModel>   // for QAbstractListModel
#include <QByteArray>           // for QByteArray
#include <QModelIndex>          // for QModelIndex
#include <QString>              // for QString
#include <QtCore>               // for QHash, ItemDataRole
#include "Utils/preferences.h"  // for PreferencesWatcher

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availabletransformsmodel.h should remove these lines:
- #include <QAbstractItemModel>  // lines 27-27
- #include <QObject>  // lines 24-24
- #include <QQmlEngine>  // lines 25-25
- #include "app/preferences.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availabletransformsmodel.h:
#include <qqmlintegration.h>    // for QML_ELEMENT
#include <qtmetamacros.h>       // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractListModel>   // for QAbstractListModel
#include <QByteArray>           // for QByteArray
#include <QList>                // for QList
#include <QModelIndex>          // for QModelIndex
#include <QString>              // for QString
#include <QStringList>          // for QStringList
#include <QVariant>             // for QVariant
#include <QtCore>               // for QHash, ItemDataRole
#include "Utils/preferences.h"  // for PreferencesWatcher
class GraphModel;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availabletransformsmodel.cpp should add these lines:
#include <QAbstractItemModel>              // for QAbstractItemModel
#include <json.hpp>                        // for basic_json, iter_impl
#include "shared/utils/container.h"        // for contains

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availabletransformsmodel.cpp should remove these lines:
- #include "app/application.h"  // lines 21-21
- #include "app/preferences.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/availabletransformsmodel.cpp:
#include "availabletransformsmodel.h"
#include <json_helper.h>                   // for parseJsonFrom
#include <QAbstractItemModel>              // for QAbstractItemModel
#include <json.hpp>                        // for basic_json, iter_impl
#include "app/graph/graphmodel.h"          // for GraphModel
#include "app/transform/graphtransform.h"  // for GraphTransformFactory
#include "shared/utils/container.h"        // for contains
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/application.h should add these lines:
#include <qqmlintegration.h>             // for QML_ANONYMOUS, QML_ELEMENT
#include <qtmetamacros.h>                // for Q_INVOKABLE, Q_PROPERTY, Q_O...
#include <QByteArray>                    // for QByteArray
#include <QList>                         // for QList
#include <QVariant>                      // for QVariant
#include <QVariantList>                  // for QVariantList
#include <QtCore>                        // for QHash, ItemDataRole
#include <utility>                       // for move
#include "app/loading/isaver.h"          // for ISaverFactory
class QImage;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/application.h should remove these lines:
- #include <QColor>  // lines 34-34
- #include <QImage>  // lines 37-37
- #include <QQmlEngine>  // lines 29-29
- #include <QRect>  // lines 33-33
- #include <QUrl>  // lines 32-32
- #include <QtGlobal>  // lines 41-41
- class GraphModel;  // lines 46-46
- class IParser;  // lines 47-47
- class ISaverFactory;  // lines 48-48

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/application.h:
#include <qqmlintegration.h>             // for QML_ANONYMOUS, QML_ELEMENT
#include <qtmetamacros.h>                // for Q_INVOKABLE, Q_PROPERTY, Q_O...
#include <QAbstractListModel>            // for QAbstractListModel
#include <QByteArray>                    // for QByteArray
#include <QCoreApplication>              // for QCoreApplication
#include <QList>                         // for QList
#include <QObject>                       // for QObject
#include <QPluginLoader>                 // for QPluginLoader
#include <QProcessEnvironment>           // for QProcessEnvironment
#include <QString>                       // for QString
#include <QStringList>                   // for QStringList
#include <QStringListModel>              // for QStringListModel
#include <QVariant>                      // for QVariant
#include <QVariantList>                  // for QVariantList
#include <QtCore>                        // for QHash, ItemDataRole
#include <memory>                        // for unique_ptr
#include <utility>                       // for move
#include <vector>                        // for vector
#include "app/loading/isaver.h"          // for ISaverFactory
#include "app/updates/updater.h"         // for Updater
#include "shared/iapplication.h"         // for IApplication
#include "shared/utils/downloadqueue.h"  // for DownloadQueue
#include "shared/utils/qmlenum.h"        // for DEFINE_QML_ENUM
class IPlugin;  // lines 49-49
class QImage;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/application.cpp should add these lines:
#include <bits/chrono.h>                                      // for operato...
#include <qassert.h>                                          // for Q_ASSERT
#include <qtpreprocessorsupport.h>                            // for Q_UNUSED
#include <stdio.h>                                            // for fflush
#include <QChar>                                              // for operator!=
#include <QFileInfo>                                          // for QFileInfo
#include <QLibrary>                                           // for QLibrary
#include <QMap>                                               // for QMap
#include <QMessageLogger>                                     // for qDebug
#include <QModelIndex>                                        // for QModelI...
#include <QStringLiteral>                                     // for qMakeSt...
#include <QUrl>                                               // for QUrl
#include <QVariantMap>                                        // for QVarian...
#include <string>                                             // for operator<<
#include "app/loading/saverfactory.h"                         // for SaverFa...
#include "shared/utils/container.h"                           // for contains
class QImage;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/application.cpp should remove these lines:
- #include <QQmlEngine>  // lines 57-57
- #include <chrono>  // lines 64-64
- #include <cmath>  // lines 59-59
- #include "app/preferences.h"  // lines 26-26
- #include "app/tracking.h"  // lines 25-25
- #include "shared/utils/qrcextract.h"  // lines 35-35

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/application.cpp:
#include "application.h"
#include <bits/chrono.h>                                      // for operato...
#include <qassert.h>                                          // for Q_ASSERT
#include <qtpreprocessorsupport.h>                            // for Q_UNUSED
#include <stdio.h>                                            // for fflush
#include <QApplication>                                       // for QApplic...
#include <QChar>                                              // for operator!=
#include <QClipboard>                                         // for QClipboard
#include <QDebug>                                             // for QDebug
#include <QDir>                                               // for QDir
#include <QFileInfo>                                          // for QFileInfo
#include <QLibrary>                                           // for QLibrary
#include <QMap>                                               // for QMap
#include <QMessageBox>                                        // for QMessag...
#include <QMessageLogger>                                     // for qDebug
#include <QModelIndex>                                        // for QModelI...
#include <QStandardPaths>                                     // for QStanda...
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include <QStringLiteral>                                     // for qMakeSt...
#include <QUrl>                                               // for QUrl
#include <QVariantMap>                                        // for QVarian...
#include <algorithm>                                          // for any_of
#include <iostream>                                           // for basic_o...
#include <map>                                                // for map
#include <memory>                                             // for unique_ptr
#include <mutex>                                              // for mutex
#include <string>                                             // for operator<<
#include <thread>                                             // for sleep_for
#include "../crashhandler.h"                                  // for CrashHa...
#include "app/loading/gmlsaver.h"                             // for GMLSave...
#include "app/loading/graphmlsaver.h"                         // for GraphML...
#include "app/loading/jsongraphsaver.h"                       // for JSONGra...
#include "app/loading/nativeloader.h"                         // for Loader
#include "app/loading/nativesaver.h"                          // for NativeS...
#include "app/loading/pairwisesaver.h"                        // for Pairwis...
#include "app/loading/saverfactory.h"                         // for SaverFa...
#include "app/rendering/openglfunctions.h"                    // for OpenGLF...
#include "app/transform/graphtransformconfigparser.h"         // for GraphTr...
#include "app/ui/visualisations/visualisationconfigparser.h"  // for Visuali...
#include "build_defines.h"                                    // for COPYRIGHT
#include "crashtype.h"                                        // for CrashType
#include "shared/plugins/iplugin.h"                           // for IPlugin
#include "shared/utils/container.h"                           // for contains
#include "shared/utils/container_combine.h"                   // for combine
#include "shared/utils/fatalerror.h"                          // for FATAL_E...
#include "shared/utils/msvcwarningsuppress.h"                 // for MSVC_WA...
#include "shared/utils/scopetimer.h"                          // for ScopeTi...
#include "shared/utils/static_block.h"                        // for execute...
#include "shared/utils/thread.h"                              // for setCurr...
class QImage;
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/editattributetablemodel.h should add these lines:
#include <qqmlintegration.h>                    // for QML_ELEMENT
#include <qtmetamacros.h>                       // for Q_PROPERTY, Q_INVOKABLE
#include <QByteArray>                           // for QByteArray, QTypeInfo...
#include <QModelIndex>                          // for QModelIndex
#include <QtCore>                               // for ItemDataRole, QHash
#include "shared/graph/elementid_containers.h"  // for EdgeIdMap, NodeIdMap

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/editattributetablemodel.h should remove these lines:
- #include <QObject>  // lines 27-27
- #include <QQmlEngine>  // lines 28-28
- class SelectionManager;  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/editattributetablemodel.h:
#include <qqmlintegration.h>                    // for QML_ELEMENT
#include <qtmetamacros.h>                       // for Q_PROPERTY, Q_INVOKABLE
#include <QAbstractTableModel>                  // for QAbstractTableModel
#include <QByteArray>                           // for QByteArray, QTypeInfo...
#include <QModelIndex>                          // for QModelIndex
#include <QString>                              // for QString
#include <QVariant>                             // for QVariant
#include <QtCore>                               // for ItemDataRole, QHash
#include <map>                                  // for map
#include <vector>                               // for vector
#include "app/attributes/attributeedits.h"      // for AttributeEdits
#include "shared/attributes/iattribute.h"       // for IAttribute
#include "shared/graph/elementid.h"             // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdMap, NodeIdMap
class Document;  // lines 36-36
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/editattributetablemodel.cpp should add these lines:
#include <qcompare.h>                                           // for QPart...
#include <stddef.h>                                             // for size_t
#include <QDebug>                                               // for QDebug
#include <QMessageLogger>                                       // for qDebug
#include <QMetaType>                                            // for QMeta...
#include <algorithm>                                            // for sort
#include <numeric>                                              // for iota
#include <type_traits>                                          // for remov...
#include <utility>                                              // for swap
#include "document.h"                                           // for Document
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/ui/iselectionmanager.h"                        // for ISele...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/editattributetablemodel.cpp should remove these lines:
- #include <QQmlEngine>  // lines 30-30
- #include "app/ui/document.h"  // lines 21-21
- #include "app/ui/selectionmanager.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/editattributetablemodel.cpp:
#include "editattributetablemodel.h"
#include <qcompare.h>                                           // for QPart...
#include <stddef.h>                                             // for size_t
#include <QDebug>                                               // for QDebug
#include <QMessageLogger>                                       // for qDebug
#include <QMetaType>                                            // for QMeta...
#include <algorithm>                                            // for sort
#include <numeric>                                              // for iota
#include <type_traits>                                          // for remov...
#include <utility>                                              // for swap
#include "document.h"                                           // for Document
#include "shared/attributes/iattribute.h"                       // for IAttr...
#include "shared/graph/igraph.h"                                // for IGraph
#include "shared/graph/igraphmodel.h"                           // for IGrap...
#include "shared/ui/iselectionmanager.h"                        // for ISele...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/utils/container.h"                             // for contains
#include "shared/utils/string.h"                                // for numer...
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/graphdisplay.h should add these lines:
#include <qqmlintegration.h>         // for QML_ELEMENT
#include <qtmetamacros.h>            // for Q_PROPERTY, Q_INVOKABLE, slots
#include <stddef.h>                  // for size_t
#include "graphrenderertypes.h"      // for Shading, Projection
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class QImage;
class QMouseEvent;
class QQuickItem;
class QWheelEvent;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/graphdisplay.h should remove these lines:
- #include <QDesktopServices>  // lines 32-32
- #include <QImage>  // lines 31-31
- #include <QObject>  // lines 25-25
- #include <QQmlEngine>  // lines 26-26
- #include <QTimer>  // lines 28-28
- #include "app/rendering/graphrenderertypes.h"  // lines 23-23
- class ICommand;  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/graphdisplay.h:
#include <qqmlintegration.h>         // for QML_ELEMENT
#include <qtmetamacros.h>            // for Q_PROPERTY, Q_INVOKABLE, slots
#include <stddef.h>                  // for size_t
#include <QEvent>                    // for QEvent
#include <QQuickFramebufferObject>   // for QQuickFramebufferObject
#include <QString>                   // for QString
#include <memory>                    // for unique_ptr
#include <queue>                     // for queue
#include <vector>                    // for vector
#include "app/graph/qmlelementid.h"  // for QmlNodeId
#include "graphrenderertypes.h"      // for Shading, Projection
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class CommandManager;  // lines 40-40
class GraphModel;  // lines 38-38
class IGraphComponent;  // lines 42-42
class QImage;
class QMouseEvent;
class QQuickItem;
class QWheelEvent;
class SelectionManager;  // lines 41-41
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/graphdisplay.cpp should add these lines:
#include <QDesktopServices>                            // for QDesktopServices
#include <QImage>                                      // for QImage
#include <QMouseEvent>                                 // for QMouseEvent
#include <QNativeGestureEvent>                         // for QNativeGesture...
#include <QQuickItem>                                  // for QQuickItem
#include <QUrl>                                        // for QUrl
#include <QWheelEvent>                                 // for QWheelEvent
#include <Qt>                                          // for ConnectionType
#include <algorithm>                                   // for count_if, find
#include <iterator>                                    // for distance
#include "app/graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/commands/command.h"                   // for Command (ptr o...
#include "shared/graph/igraphcomponent.h"              // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/graphdisplay.cpp should remove these lines:
- #include <QQmlEngine>  // lines 28-28
- #include <QtGlobal>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/graphdisplay.cpp:
#include "graphdisplay.h"
#include <QDesktopServices>                            // for QDesktopServices
#include <QImage>                                      // for QImage
#include <QMouseEvent>                                 // for QMouseEvent
#include <QNativeGestureEvent>                         // for QNativeGesture...
#include <QQuickItem>                                  // for QQuickItem
#include <QUrl>                                        // for QUrl
#include <QWheelEvent>                                 // for QWheelEvent
#include <Qt>                                          // for ConnectionType
#include <algorithm>                                   // for count_if, find
#include <iterator>                                    // for distance
#include "app/commands/commandmanager.h"               // for CommandManager
#include "app/graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "app/graph/graph.h"                           // for Graph
#include "app/graph/graphmodel.h"                      // for GraphModel
#include "app/rendering/graphrenderer.h"               // for GraphRenderer
#include "shared/commands/command.h"                   // for Command (ptr o...
#include "shared/graph/igraphcomponent.h"              // for IGraphComponent
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/importattributeskeydetection.h should add these lines:
#include <qqmlintegration.h>           // for QML_ELEMENT
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QMap>                        // for QMap
#include <memory>                      // for shared_ptr
class Document;
class TabularData;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/importattributeskeydetection.h should remove these lines:
- #include <QQmlEngine>  // lines 27-27
- #include "app/ui/document.h"  // lines 22-22
- #include "shared/loading/tabulardata.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/importattributeskeydetection.h:
#include <qqmlintegration.h>           // for QML_ELEMENT
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFutureWatcher>              // for QFutureWatcher
#include <QMap>                        // for QMap
#include <QObject>                     // for QObject
#include <QVariantMap>                 // for QVariantMap
#include <memory>                      // for shared_ptr
#include "shared/utils/cancellable.h"  // for Cancellable
class Document;
class TabularData;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/importattributeskeydetection.cpp should add these lines:
#include <stddef.h>                                             // for size_t
#include <QList>                                                // for QList
#include <QString>                                              // for QString
#include <QVariant>                                             // for QVariant
#include <vector>                                               // for vector
#include "document.h"                                           // for Document
#include "shared/loading/tabulardata.h"                         // for Tabul...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/typeidentity.h"                          // for TypeI...

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/importattributeskeydetection.cpp should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/importattributeskeydetection.cpp:
#include "importattributeskeydetection.h"
#include <stddef.h>                                             // for size_t
#include <QFuture>                                              // for QFuture
#include <QList>                                                // for QList
#include <QString>                                              // for QString
#include <QVariant>                                             // for QVariant
#include <QtConcurrentRun>                                      // for run
#include <vector>                                               // for vector
#include "document.h"                                           // for Document
#include "shared/loading/tabulardata.h"                         // for Tabul...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"  // for Eleme...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"    // for Value...
#include "shared/utils/typeidentity.h"                          // for TypeI...
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/enrichmentheatmap.h should add these lines:
#include <qqmlintegration.h>       // for QML_ELEMENT
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFont>                   // for QFont
#include <QPointF>                 // for QPointF
#include <QString>                 // for QString
#include <QStringList>             // for QStringList
#include <map>                     // for map
#include <utility>                 // for pair
class EnrichmentTableModel;
class QCPAbstractPlottable;
class QCPColorMap;
class QCPColorScale;
class QCPItemText;
class QCPLayer;
class QHoverEvent;
class QMouseEvent;
class QQuickItem;
class QUrl;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/enrichmentheatmap.h should remove these lines:
- #include <QObject>  // lines 26-26
- #include <QQmlEngine>  // lines 27-27
- #include "app/attributes/enrichmentcalculator.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/enrichmentheatmap.h:
#include <qcustomplotquickitem.h>  // for QCustomPlotQuickItem
#include <qqmlintegration.h>       // for QML_ELEMENT
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFont>                   // for QFont
#include <QPointF>                 // for QPointF
#include <QString>                 // for QString
#include <QStringList>             // for QStringList
#include <map>                     // for map
#include <utility>                 // for pair
class EnrichmentTableModel;
class QCPAbstractPlottable;
class QCPColorMap;
class QCPColorScale;
class QCPItemText;
class QCPLayer;
class QHoverEvent;
class QMouseEvent;
class QQuickItem;
class QUrl;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/enrichmentheatmap.cpp should add these lines:
#include <qcustomplot.h>                          // for QCustomPlot, QCPAxis
#include <qtpreprocessorsupport.h>                // for Q_UNUSED
#include <QColor>                                 // for QColor
#include <QDesktopServices>                       // for QDesktopServices
#include <QFontMetrics>                           // for QFontMetrics
#include <QHoverEvent>                            // for QHoverEvent
#include <QList>                                  // for QList
#include <QMargins>                               // for QMargins
#include <QMouseEvent>                            // for QMouseEvent
#include <QPen>                                   // for QPen
#include <QPoint>                                 // for QPoint
#include <QQuickPaintedItem>                      // for QQuickPaintedItem
#include <QRectF>                                 // for QRectF
#include <QSharedPointer>                         // for QSharedPointer
#include <QUrl>                                   // for QUrl
#include <QVariant>                               // for QVariant
#include <QtCore>                                 // for GlobalColor, MouseB...
#include <QtGui>                                  // for QBrush
#include <algorithm>                              // for sort
#include <cmath>                                  // for round
#include <vector>                                 // for vector
#include "app/attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/enrichmentheatmap.cpp should remove these lines:
- #include <QQmlEngine>  // lines 26-26
- #include <QtGlobal>  // lines 27-27
- #include <iterator>  // lines 30-30
- #include "shared/utils/utils.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/enrichmentheatmap.cpp:
#include "enrichmentheatmap.h"
#include <qcustomplot.h>                          // for QCustomPlot, QCPAxis
#include <qtpreprocessorsupport.h>                // for Q_UNUSED
#include <QColor>                                 // for QColor
#include <QDesktopServices>                       // for QDesktopServices
#include <QFontMetrics>                           // for QFontMetrics
#include <QHoverEvent>                            // for QHoverEvent
#include <QList>                                  // for QList
#include <QMargins>                               // for QMargins
#include <QMouseEvent>                            // for QMouseEvent
#include <QPen>                                   // for QPen
#include <QPoint>                                 // for QPoint
#include <QQuickPaintedItem>                      // for QQuickPaintedItem
#include <QRectF>                                 // for QRectF
#include <QSharedPointer>                         // for QSharedPointer
#include <QUrl>                                   // for QUrl
#include <QVariant>                               // for QVariant
#include <QtCore>                                 // for GlobalColor, MouseB...
#include <QtGui>                                  // for QBrush
#include <algorithm>                              // for sort
#include <cmath>                                  // for round
#include <set>                                    // for set, operator==
#include <vector>                                 // for vector
#include "app/attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
#include "shared/rendering/multisamples.h"        // for multisamples
#include "shared/utils/container.h"               // for containsKey
#include "shared/utils/string.h"                  // for formatNumberScientific
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/document.h should add these lines:
#include <qqmlintegration.h>                                      // for QML...
#include <qtmetamacros.h>                                         // for Q_I...
#include <stddef.h>                                               // for size_t
#include <QColor>                                                 // for QColor
#include <QList>                                                  // for QList
#include <QMetaType>                                              // for Q_D...
#include <QVariant>                                               // for QVa...
#include <QVariantList>                                           // for QVa...
#include <map>                                                    // for map
#include "Utils/preferences.h"                                    // for Pre...
#include "app/layout/layoutsettings.h"                            // for Lay...
#include "app/layout/nodepositions.h"                             // for Exa...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "shared/utils/flags.h"                                   // for Flags
class AttributeEdits;
class GraphDisplay;
class ICommandManager;
class IGraphModel;
class IPluginInstance;
class ISelectionManager;
class ParserThread;
class QAbstractItemModel;
class QUrl;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/document.h should remove these lines:
- #include <QQmlEngine>  // lines 44-44
- #include <QQuickItem>  // lines 45-45
- #include <QUrl>  // lines 48-48
- #include <mutex>  // lines 54-54
- #include "app/attributes/attributeedits.h"  // lines 26-26
- #include "app/attributes/enrichmenttablemodel.h"  // lines 25-25
- #include "app/loading/parserthread.h"  // lines 30-30
- #include "app/preferences.h"  // lines 32-32
- #include "app/rendering/graphrenderertypes.h"  // lines 31-31
- #include "app/ui/findtypes.h"  // lines 33-33
- #include "graphdisplay.h"  // lines 23-23
- #include "shared/attributes/iattribute.h"  // lines 35-35
- #include "shared/attributes/valuetype.h"  // lines 36-36
- #include "shared/graph/elementtype.h"  // lines 37-37
- #include "shared/plugins/iplugin.h"  // lines 38-38

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/document.h:
#include <qqmlintegration.h>                                      // for QML...
#include <qtmetamacros.h>                                         // for Q_I...
#include <stddef.h>                                               // for size_t
#include <QByteArray>                                             // for QBy...
#include <QColor>                                                 // for QColor
#include <QList>                                                  // for QList
#include <QMetaType>                                              // for Q_D...
#include <QObject>                                                // for QOb...
#include <QString>                                                // for QSt...
#include <QStringList>                                            // for QSt...
#include <QVariant>                                               // for QVa...
#include <QVariantList>                                           // for QVa...
#include <QVariantMap>                                            // for QVa...
#include <atomic>                                                 // for ato...
#include <map>                                                    // for map
#include <memory>                                                 // for uni...
#include <vector>                                                 // for vector
#include "Utils/preferences.h"                                    // for Pre...
#include "app/commands/commandmanager.h"                          // for Com...
#include "app/graph/qmlelementid.h"                               // for Qml...
#include "app/layout/layout.h"                                    // for Lay...
#include "app/layout/layoutsettings.h"                            // for Lay...
#include "app/layout/nodepositions.h"                             // for Exa...
#include "shared/graph/elementid.h"                               // for NodeId
#include "shared/graph/elementid_containers.h"                    // for Nod...
#include "shared/ui/idocument.h"                                  // for Mes...
#include "shared/ui/qml/app/graphia/SharedTypes/attributeflag.h"  // for Att...
#include "shared/ui/qml/app/graphia/SharedTypes/elementtype.h"    // for Ele...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"      // for Val...
#include "shared/utils/deferredexecutor.h"                        // for Def...
#include "shared/utils/failurereason.h"                           // for Fai...
#include "shared/utils/flags.h"                                   // for Flags
#include "shared/utils/qmlenum.h"                                 // for DEF...
class Application;  // lines 60-60
class AttributeEdits;
class AvailableAttributesModel;  // lines 65-65
class AvailableTransformsModel;  // lines 66-66
class Graph;  // lines 59-59
class GraphDisplay;
class GraphModel;  // lines 61-61
class ICommandManager;
class IGraphModel;
class IPluginInstance;
class ISelectionManager;
class ParserThread;
class QAbstractItemModel;
class QUrl;
class SearchManager;  // lines 62-62
class SelectionManager;  // lines 63-63
class TabularData;  // lines 64-64
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/document.cpp should add these lines:
#include <bits/chrono.h>                                      // for operato...
#include <qassert.h>                                          // for Q_ASSERT
#include <qtenvironmentvariables.h>                           // for qEnviro...
#include <qtypes.h>                                           // for qsizetype
#include <stdint.h>                                           // for uint64_t
#include <QCoreApplication>                                   // for QCoreAp...
#include <QDataStream>                                        // for QDataSt...
#include <QDebug>                                             // for QDebug
#include <QIODevice>                                          // for QIODevice
#include <QMap>                                               // for QMap
#include <QMessageLogger>                                     // for qDebug
#include <QRegularExpression>                                 // for QRegula...
#include <QTextStream>                                        // for QTextSt...
#include <QUrl>                                               // for QUrl
#include <QVector3D>                                          // for QVector3D
#include <Qt>                                                 // for Connect...
#include <algorithm>                                          // for sort
#include <compare>                                            // for operator<
#include <functional>                                         // for function
#include <iterator>                                           // for next, prev
#include <json.hpp>                                           // for basic_json
#include <set>                                                // for set, swap
#include <string>                                             // for basic_s...
#include <utility>                                            // for move, pair
#include "alert.h"                                            // for Alert
#include "app/attributes/attribute.h"                         // for Attribute
#include "app/attributes/condtionfnops.h"                     // for String
#include "app/attributes/enrichmenttablemodel.h"              // for Enrichm...
#include "app/graph/elementiddistinctsetcollection.h"         // for MultiEl...
#include "app/graph/graph.h"                                  // for Graph
#include "app/transform/graphtransformattributeparameter.h"   // for GraphTr...
#include "app/transform/graphtransformconfig.h"               // for GraphTr...
#include "app/transform/graphtransformparameter.h"            // for GraphTr...
#include "app/transform/transforminfo.h"                      // for Transfo...
#include "app/ui/visualisations/visualisationconfig.h"        // for Visuali...
#include "application.h"                                      // for Applica...
#include "findtypes.h"                                        // for FindSel...
#include "graphdisplay.h"                                     // for GraphDi...
#include "graphrenderertypes.h"                               // for Shading
#include "limitconstants.h"                                   // for LimitCo...
#include "shared/attributes/iattributerange.h"                // for IAttrib...
#include "shared/commands/command.h"                          // for Command
#include "shared/commands/icommand.h"                         // for IComman...
#include "shared/commands/icommandmanager.h"                  // for Execute...
#include "shared/graph/grapharray.h"                          // for NodeArray
#include "shared/graph/igraphcomponent.h"                     // for IGraphC...
#include "shared/graph/igraphmodel.h"                         // for IGraphM...
#include "shared/graph/imutablegraph.h"                       // for IMutabl...
#include "shared/loading/iparser.h"                           // for IParser
#include "shared/utils/container.h"                           // for contains
#include "shared/utils/statistics.h"                          // for Statistics
class AttributeEdits;
class ISelectionManager;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/document.cpp should remove these lines:
- #include <QQmlEngine>  // lines 86-86
- #include <QQmlProperty>  // lines 76-76
- #include <chrono>  // lines 74-74
- #include <numeric>  // lines 72-72
- #include "app/application.h"  // lines 21-21
- #include "app/attributes/attributeedits.h"  // lines 61-61
- #include "app/layout/collision.h"  // lines 44-44
- #include "app/limitconstants.h"  // lines 23-23
- #include "app/loading/nativesaver.h"  // lines 39-39
- #include "app/preferences.h"  // lines 22-22
- #include "shared/loading/tabulardata.h"  // lines 31-31
- #include "shared/loading/userelementdata.h"  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/document.cpp:
#include "document.h"
#include <bits/chrono.h>                                      // for operato...
#include <json_helper.h>                                      // for parseJs...
#include <qassert.h>                                          // for Q_ASSERT
#include <qtenvironmentvariables.h>                           // for qEnviro...
#include <qtypes.h>                                           // for qsizetype
#include <stdint.h>                                           // for uint64_t
#include <QAbstractItemModel>                                 // for QAbstra...
#include <QApplication>                                       // for QApplic...
#include <QClipboard>                                         // for QClipboard
#include <QCoreApplication>                                   // for QCoreAp...
#include <QDataStream>                                        // for QDataSt...
#include <QDebug>                                             // for QDebug
#include <QElapsedTimer>                                      // for QElapse...
#include <QFile>                                              // for QFile
#include <QIODevice>                                          // for QIODevice
#include <QMap>                                               // for QMap
#include <QMessageBox>                                        // for QMessag...
#include <QMessageLogger>                                     // for qDebug
#include <QMetaObject>                                        // for QMetaOb...
#include <QRegularExpression>                                 // for QRegula...
#include <QTextStream>                                        // for QTextSt...
#include <QThread>                                            // for QThread
#include <QUrl>                                               // for QUrl
#include <QVariantList>                                       // for QVarian...
#include <QVector3D>                                          // for QVector3D
#include <QVector>                                            // for QVector
#include <Qt>                                                 // for Connect...
#include <algorithm>                                          // for sort
#include <compare>                                            // for operator<
#include <functional>                                         // for function
#include <iterator>                                           // for next, prev
#include <json.hpp>                                           // for basic_json
#include <set>                                                // for set, swap
#include <string>                                             // for basic_s...
#include <thread>                                             // for sleep_for
#include <utility>                                            // for move, pair
#include "../crashhandler.h"                                  // for CrashHa...
#include "alert.h"                                            // for Alert
#include "app/attributes/attribute.h"                         // for Attribute
#include "app/attributes/conditionfncreator.h"                // for CreateC...
#include "app/attributes/condtionfnops.h"                     // for String
#include "app/attributes/enrichmentcalculator.h"              // for Enrichm...
#include "app/attributes/enrichmenttablemodel.h"              // for Enrichm...
#include "app/commands/applytransformscommand.h"              // for ApplyTr...
#include "app/commands/applyvisualisationscommand.h"          // for ApplyVi...
#include "app/commands/cloneattributecommand.h"               // for CloneAt...
#include "app/commands/deletenodescommand.h"                  // for DeleteN...
#include "app/commands/editattributecommand.h"                // for EditAtt...
#include "app/commands/importattributescommand.h"             // for ImportA...
#include "app/commands/removeattributescommand.h"             // for RemoveA...
#include "app/commands/selectnodescommand.h"                  // for SelectN...
#include "app/graph/elementiddistinctsetcollection.h"         // for MultiEl...
#include "app/graph/graph.h"                                  // for Graph
#include "app/graph/graphmodel.h"                             // for GraphModel
#include "app/graph/mutablegraph.h"                           // for Mutable...
#include "app/layout/forcedirectedlayout.h"                   // for ForceDi...
#include "app/layout/layout.h"                                // for LayoutT...
#include "app/loading/isaver.h"                               // for ISaver
#include "app/loading/nativeloader.h"                         // for Loader
#include "app/loading/parserthread.h"                         // for ParserT...
#include "app/transform/graphtransform.h"                     // for GraphTr...
#include "app/transform/graphtransformattributeparameter.h"   // for GraphTr...
#include "app/transform/graphtransformconfig.h"               // for GraphTr...
#include "app/transform/graphtransformconfigparser.h"         // for GraphTr...
#include "app/transform/graphtransformparameter.h"            // for GraphTr...
#include "app/transform/transforminfo.h"                      // for Transfo...
#include "app/ui/searchmanager.h"                             // for SearchM...
#include "app/ui/selectionmanager.h"                          // for Selecti...
#include "app/ui/visualisations/visualisationconfig.h"        // for Visuali...
#include "app/ui/visualisations/visualisationconfigparser.h"  // for Visuali...
#include "app/ui/visualisations/visualisationinfo.h"          // for Visuali...
#include "application.h"                                      // for Applica...
#include "availableattributesmodel.h"                         // for Availab...
#include "availabletransformsmodel.h"                         // for Availab...
#include "findtypes.h"                                        // for FindSel...
#include "graphdisplay.h"                                     // for GraphDi...
#include "graphrenderertypes.h"                               // for Shading
#include "limitconstants.h"                                   // for LimitCo...
#include "shared/attributes/iattributerange.h"                // for IAttrib...
#include "shared/commands/command.h"                          // for Command
#include "shared/commands/icommand.h"                         // for IComman...
#include "shared/commands/icommandmanager.h"                  // for Execute...
#include "shared/graph/grapharray.h"                          // for NodeArray
#include "shared/graph/igraphcomponent.h"                     // for IGraphC...
#include "shared/graph/igraphmodel.h"                         // for IGraphM...
#include "shared/graph/imutablegraph.h"                       // for IMutabl...
#include "shared/loading/iparser.h"                           // for IParser
#include "shared/plugins/iplugin.h"                           // for IPlugin...
#include "shared/utils/color.h"                               // for contras...
#include "shared/utils/container.h"                           // for contains
#include "shared/utils/flags.h"                               // for Flags
#include "shared/utils/statistics.h"                          // for Statistics
#include "shared/utils/string.h"                              // for escapeQ...
class AttributeEdits;
class ISelectionManager;
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/controlcolors.h should add these lines:
#include <qqmlintegration.h>      // for QML_ELEMENT, QML_SINGLETON
#include <qtclasshelpermacros.h>  // for Q_DISABLE_COPY
#include <qtmetamacros.h>         // for Q_PROPERTY, Q_OBJECT, signals
#include <Qt>                     // for ColorScheme
class QEvent;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/controlcolors.h should remove these lines:
- #include <QGuiApplication>  // lines 23-23
- #include <QQmlEngine>  // lines 22-22
- class QJSEngine;  // lines 29-29
- class QQmlEngine;  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/controlcolors.h:
#include <qqmlintegration.h>      // for QML_ELEMENT, QML_SINGLETON
#include <qtclasshelpermacros.h>  // for Q_DISABLE_COPY
#include <qtmetamacros.h>         // for Q_PROPERTY, Q_OBJECT, signals
#include <QColor>                 // for QColor
#include <QObject>                // for QObject
#include <QPalette>               // for QPalette
#include <Qt>                     // for ColorScheme
class QEvent;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/controlcolors.cpp should add these lines:
#include <QCoreApplication>             // for QCoreApplication
#include <QEvent>                       // for QEvent
#include <QGuiApplication>              // for QGuiApplication

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/controlcolors.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/controlcolors.cpp:
#include "controlcolors.h"
#include <QCoreApplication>             // for QCoreApplication
#include <QEvent>                       // for QEvent
#include <QGuiApplication>              // for QGuiApplication
#include <QStyleHints>                  // for QStyleHints
#include "shared/utils/shadedcolors.h"  // for ShadedColors
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/hovermousepassthrough.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_OBJECT, Q_PROPERTY, signals

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/hovermousepassthrough.h should remove these lines:
- #include <QObject>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/hovermousepassthrough.h:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_OBJECT, Q_PROPERTY, signals
#include <QQuickItem>         // for QQuickItem
class QHoverEvent;  // lines 25-25
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/hovermousepassthrough.cpp should add these lines:
#include <QHoverEvent>  // for QHoverEvent

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/hovermousepassthrough.cpp should remove these lines:
- #include <QMouseEvent>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/hovermousepassthrough.cpp:
#include "hovermousepassthrough.h"
#include <QHoverEvent>  // for QHoverEvent
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/namedicon.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_OBJECT, signals
class QPainter;
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/namedicon.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/namedicon.h:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_OBJECT, signals
#include <QIcon>              // for QIcon
#include <QQuickPaintedItem>  // for QQuickPaintedItem
#include <QString>            // for QString
class QPainter;
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/namedicon.cpp should add these lines:
#include <QtCore/qobjectdefs.h>  // for FunctionPointer<>::ArgumentCount
#include <QPixmap>               // for QPixmap
#include <QRect>                 // for QRect
#include <QRectF>                // for QRectF
#include <QSize>                 // for QSize, operator!=
#include <QSizeF>                // for QSizeF
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/namedicon.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/namedicon.cpp:
#include "namedicon.h"
#include <QtCore/qobjectdefs.h>  // for FunctionPointer<>::ArgumentCount
#include <QPainter>              // for QPainter
#include <QPixmap>               // for QPixmap
#include <QQuickWindow>          // for QQuickWindow
#include <QRect>                 // for QRect
#include <QRectF>                // for QRectF
#include <QSize>                 // for QSize, operator!=
#include <QSizeF>                // for QSizeF
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/outline.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_OBJECT, signals
#include <QColor>             // for QColor
#include <Qt>                 // for GlobalColor
class QPainter;
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/outline.h should remove these lines:
- #include <QQmlEngine>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/outline.h:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_OBJECT, signals
#include <QColor>             // for QColor
#include <QQuickPaintedItem>  // for QQuickPaintedItem
#include <Qt>                 // for GlobalColor
#include "controlcolors.h"    // for ControlColors
class QPainter;
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/outline.cpp should add these lines:
#include <qtypes.h>  // for qreal
#include <QPen>      // for QPen
#include <QRectF>    // for QRectF
#include <QtGui>     // for QBrush
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/outline.cpp should remove these lines:
- #include <QQuickWindow>  // lines 22-22
- #include <QtGlobal>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/outline.cpp:
#include "outline.h"
#include <qtypes.h>  // for qreal
#include <QPainter>  // for QPainter
#include <QPen>      // for QPen
#include <QRectF>    // for QRectF
#include <QtGui>     // for QBrush
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/modelcompleter.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_OBJECT, signals
#include <QModelIndex>        // for QModelIndex

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/modelcompleter.h should remove these lines:
- #include <QAbstractItemModel>  // lines 24-24
- #include <QQmlEngine>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/modelcompleter.h:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_PROPERTY, Q_OBJECT, signals
#include <QList>              // for QList
#include <QModelIndex>        // for QModelIndex
#include <QObject>            // for QObject
#include <QString>            // for QString
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/modelcompleter.cpp should add these lines:
#include <QAbstractItemModel>  // for QAbstractItemModel
#include <QChar>               // for QChar, operator!=
#include <QVariant>            // for QVariant
#include <QVector>             // for QVector
#include <Qt>                  // for CaseSensitivity
#include <algorithm>           // for min

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/modelcompleter.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/modelcompleter.cpp:
#include "modelcompleter.h"
#include <QAbstractItemModel>  // for QAbstractItemModel
#include <QChar>               // for QChar, operator!=
#include <QVariant>            // for QVariant
#include <QVector>             // for QVector
#include <Qt>                  // for CaseSensitivity
#include <algorithm>           // for min
#include <limits>              // for numeric_limits
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/adjacencymatrixtabulardataparser.h should add these lines:
#include <qqmlintegration.h>             // for QML_ELEMENT
#include <qtmetamacros.h>                // for Q_PROPERTY, Q_OBJECT, signals
#include <QMap>                          // for QMap
#include "shared/graph/elementid.h"      // for EdgeId, NodeId

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/adjacencymatrixtabulardataparser.h should remove these lines:
- #include <QPoint>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/adjacencymatrixtabulardataparser.h:
#include <qqmlintegration.h>             // for QML_ELEMENT
#include <qtmetamacros.h>                // for Q_PROPERTY, Q_OBJECT, signals
#include <QMap>                          // for QMap
#include <QVariantMap>                   // for QVariantMap
#include "shared/graph/elementid.h"      // for EdgeId, NodeId
#include "shared/loading/tabulardata.h"  // for MatrixTypeResult
#include "tabulardataparser.h"           // for TabularDataParser
template <typename> class IUserElementData;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/adjacencymatrixtabulardataparser.cpp should add these lines:
#include <stddef.h>                               // for size_t
#include <QPoint>                                 // for QPoint
#include <vector>                                 // for vector

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/adjacencymatrixtabulardataparser.cpp should remove these lines:
- #include <QQmlEngine>  // lines 31-31
- #include <map>  // lines 33-33
- #include "shared/loading/userelementdata.h"  // lines 26-26
- #include "shared/utils/string.h"  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/adjacencymatrixtabulardataparser.cpp:
#include "adjacencymatrixtabulardataparser.h"
#include <stddef.h>                               // for size_t
#include <QPoint>                                 // for QPoint
#include <QString>                                // for QString
#include <vector>                                 // for vector
#include "shared/graph/edgelist.h"                // for EdgeListEdge, EdgeList
#include "shared/loading/adjacencymatrixutils.h"  // for isAdjacencyMatrix
#include "shared/loading/graphsizeestimate.h"     // for graphSizeEstimateTh...
#include "shared/loading/tabulardata.h"           // for TabularData, Matrix...
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/tabulardataparser.h should add these lines:
#include <qqmlintegration.h>                                  // for QML_ELE...
#include <qtmetamacros.h>                                     // for Q_INVOK...
#include <stddef.h>                                           // for size_t
#include <QByteArray>                                         // for QByteArray
#include <QModelIndex>                                        // for QModelI...
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include <QVariant>                                           // for QVariant
#include <QtCore>                                             // for QHash
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/tabulardataparser.h should remove these lines:
- #include <QVariantMap>  // lines 32-32
- #include "shared/attributes/valuetype.h"  // lines 27-27
- class QAbstractTableModel;  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/tabulardataparser.h:
#include <qqmlintegration.h>                                  // for QML_ELE...
#include <qtmetamacros.h>                                     // for Q_INVOK...
#include <stddef.h>                                           // for size_t
#include <QAbstractListModel>                                 // for QAbstra...
#include <QByteArray>                                         // for QByteArray
#include <QFutureWatcher>                                     // for QFuture...
#include <QModelIndex>                                        // for QModelI...
#include <QObject>                                            // for QObject
#include <QString>                                            // for QString
#include <QStringList>                                        // for QString...
#include <QVariant>                                           // for QVariant
#include <QtCore>                                             // for QHash
#include <atomic>                                             // for atomic
#include <memory>                                             // for shared_ptr
#include <vector>                                             // for vector
#include "shared/loading/tabulardata.h"                       // for Tabular...
#include "shared/loading/tabulardatamodel.h"                  // for Tabular...
#include "shared/ui/qml/app/graphia/SharedTypes/valuetype.h"  // for ValueType
#include "shared/utils/cancellable.h"                         // for Cancell...
#include "shared/utils/progressable.h"                        // for Progres...
#include "shared/utils/typeidentity.h"                        // for TypeIde...
class TabularDataParser;  // lines 38-38
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/tabulardataparser.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QAbstractItemModel>                      // for QAbstractItemModel
#include <QList>                                   // for QList
#include <QUrl>                                    // for QUrl
#include <functional>                              // for function
#include <utility>                                 // for move, pair

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/tabulardataparser.cpp should remove these lines:
- #include <QQmlEngine>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Loading/tabulardataparser.cpp:
#include "tabulardataparser.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QAbstractItemModel>                      // for QAbstractItemModel
#include <QFileInfo>                               // for QFileInfo
#include <QFuture>                                 // for QFuture
#include <QList>                                   // for QList
#include <QUrl>                                    // for QUrl
#include <QtConcurrentRun>                         // for run
#include <functional>                              // for function
#include <map>                                     // for map, operator==
#include <utility>                                 // for move, pair
#include "shared/loading/matlabfileparser.h"       // for MatLabFileParser
#include "shared/loading/xlsxtabulardataparser.h"  // for XlsxTabularDataParser
#include "shared/utils/container.h"                // for contains, indexOf
#include "shared/utils/scope_exit.h"               // for make_scope_exit
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/visualisationmappingplot.h should add these lines:
#include <bits/std_abs.h>             // for abs
#include <qcustomplot.h>              // for QCPAxis, QCustomPlot
#include <qqmlintegration.h>          // for QML_ELEMENT
#include <qtmetamacros.h>             // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/visualisationmappingplot.h should remove these lines:
- #include <QObject>  // lines 26-26
- #include <QQmlEngine>  // lines 27-27
- #include <QQuickPaintedItem>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/visualisationmappingplot.h:
#include <bits/std_abs.h>             // for abs
#include <qcustomplot.h>              // for QCPAxis, QCustomPlot
#include <qcustomplotquickitem.h>     // for QCustomPlotQuickItem
#include <qqmlintegration.h>          // for QML_ELEMENT
#include <qtmetamacros.h>             // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QList>                      // for QList
#include "shared/utils/statistics.h"  // for Statistics
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/visualisationmappingplot.cpp should add these lines:
#include <QColor>                           // for QColor
#include <QCursor>                          // for QCursor
#include <QHoverEvent>                      // for QHoverEvent
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QVector>                          // for QVector
#include <QtCore>                           // for MouseButton, CursorShape
#include <QtGui>                            // for QBrush
#include <algorithm>                        // for clamp, max, min
#include <initializer_list>                 // for initializer_list
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
#include <vector>                           // for vector
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/visualisationmappingplot.cpp should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Controls/visualisationmappingplot.cpp:
#include "visualisationmappingplot.h"
#include <QColor>                           // for QColor
#include <QCursor>                          // for QCursor
#include <QHoverEvent>                      // for QHoverEvent
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QVector>                          // for QVector
#include <QtCore>                           // for MouseButton, CursorShape
#include <QtGui>                            // for QBrush
#include <algorithm>                        // for clamp, max, min
#include <cmath>                            // for pow
#include <initializer_list>                 // for initializer_list
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
#include <vector>                           // for vector
#include "shared/rendering/multisamples.h"  // for multisamples
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/nativeutils.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT, QML_SINGLETON
#include <qtmetamacros.h>     // for Q_INVOKABLE, Q_OBJECT, Q_PROPERTY
#include <QLatin1Char>        // for StringLiterals

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/nativeutils.h should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/nativeutils.h:
#include <qqmlintegration.h>  // for QML_ELEMENT, QML_SINGLETON
#include <qtmetamacros.h>     // for Q_INVOKABLE, Q_OBJECT, Q_PROPERTY
#include <QByteArray>         // for QByteArray
#include <QColor>             // for QColor
#include <QLatin1Char>        // for StringLiterals
#include <QObject>            // for QObject
#include <QString>            // for QString
#include <QUrl>               // for QUrl
class QAbstractItemModel;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/nativeutils.cpp should add these lines:
#include <qassert.h>                       // for Q_ASSERT
#include <QAbstractItemModel>              // for QAbstractItemModel
#include <QHashNode>                       // for QHash
#include <QIODevice>                       // for QIODevice, operator|
#include <QRegularExpression>              // for QRegularExpression, QRegul...
#include <QVariant>                        // for QVariant
#include <algorithm>                       // for any_of
#include <initializer_list>                // for begin, end

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/nativeutils.cpp should remove these lines:
- #include <QAbstractListModel>  // lines 41-41
- #include <QDebug>  // lines 34-34
- #include <QObject>  // lines 32-32
- #include "shared/utils/utils.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/nativeutils.cpp:
#include "nativeutils.h"
#include <qassert.h>                       // for Q_ASSERT
#include <QAbstractItemModel>              // for QAbstractItemModel
#include <QByteArray>                      // for QByteArray
#include <QCryptographicHash>              // for QCryptographicHash
#include <QDir>                            // for QDir
#include <QFile>                           // for QFile
#include <QFileInfo>                       // for QFileInfo
#include <QHashNode>                       // for QHash
#include <QIODevice>                       // for QIODevice, operator|
#include <QKeySequence>                    // for QKeySequence
#include <QRegularExpression>              // for QRegularExpression, QRegul...
#include <QTemporaryDir>                   // for QTemporaryDir
#include <QUrl>                            // for QUrl
#include <QVariant>                        // for QVariant
#include <algorithm>                       // for any_of
#include <initializer_list>                // for begin, end
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/utils/apppathname.h"      // for appPathName
#include "shared/utils/color.h"            // for colorForString, contrastin...
#include "shared/utils/crypto.h"           // for rsaSignString
#include "shared/utils/preferences.h"      // for getPref
#include "shared/utils/redirects.h"        // for redirectLink
#include "shared/utils/showinfolder.h"     // for showInFolder
#include "shared/utils/string.h"           // for bytesToHex, formatNumber
#include "shared/utils/thread.h"           // for currentThreadName
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/preferences.h should add these lines:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_OBJECT, signals, Q_INTERFACES, Q_PROP...

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/preferences.h should remove these lines:
- #include <QQmlEngine>  // lines 23-23
- class QString;  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/preferences.h:
#include <qqmlintegration.h>  // for QML_ELEMENT
#include <qtmetamacros.h>     // for Q_OBJECT, signals, Q_INTERFACES, Q_PROP...
#include <QMetaProperty>      // for QMetaProperty
#include <QObject>            // for QObject
#include <QQmlParserStatus>   // for QQmlParserStatus
#include <QString>            // for QString
#include <QVariant>           // for QVariant
#include <mutex>              // for recursive_mutex
#include <set>                // for set
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/preferences.cpp should add these lines:
#include <QByteArray>                               // for QByteArray, opera...
#include <QList>                                    // for QList
#include <QMetaMethod>                              // for QMetaMethod
#include <QMetaObject>                              // for QMetaObject
#include <QMetaType>                                // for QMetaType
#include "app/ui/qml/app/graphia/limitconstants.h"  // for LimitConstants

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/preferences.cpp should remove these lines:
- #include <QtGlobal>  // lines 27-27
- #include "app/limitconstants.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/preferences.cpp:
#include "preferences.h"
#include <QByteArray>                               // for QByteArray, opera...
#include <QCoreApplication>                         // for QCoreApplication
#include <QList>                                    // for QList
#include <QMetaMethod>                              // for QMetaMethod
#include <QMetaObject>                              // for QMetaObject
#include <QMetaType>                                // for QMetaType
#include <QRegularExpression>                       // for QRegularExpression
#include <QSettings>                                // for QSettings
#include "app/ui/qml/app/graphia/limitconstants.h"  // for LimitConstants
#include "shared/utils/utils.h"                     // for normalise
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/sortfilterproxymodel.h should add these lines:
#include <qqmlintegration.h>      // for QML_ELEMENT
#include <qtmetamacros.h>         // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QString>                // for QString
#include <QVariant>               // for QVariant
class QModelIndex;
class QObject;

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/sortfilterproxymodel.h should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/sortfilterproxymodel.h:
#include <qqmlintegration.h>      // for QML_ELEMENT
#include <qtmetamacros.h>         // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QJSValue>               // for QJSValue
#include <QSortFilterProxyModel>  // for QSortFilterProxyModel
#include <QString>                // for QString
#include <QVariant>               // for QVariant
class QModelIndex;
class QObject;
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/sortfilterproxymodel.cpp should add these lines:
#include <QtCore/qobjectdefs.h>  // for FunctionPointer<>::ArgumentCount
#include <QAbstractItemModel>    // for QTypeInfo<>::isRelocatable, qt_getEn...
#include <QDebug>                // for QDebug
#include <QJSEngine>             // for qjsEngine, QJSEngine
#include <QMessageLogger>        // for qWarning
#include <QModelIndex>           // for QModelIndex
#include <QtCore>                // for QTypeInfo<>::isValueInitializationBi...

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/sortfilterproxymodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/sortfilterproxymodel.cpp:
#include "sortfilterproxymodel.h"
#include <QtCore/qobjectdefs.h>  // for FunctionPointer<>::ArgumentCount
#include <QAbstractItemModel>    // for QTypeInfo<>::isRelocatable, qt_getEn...
#include <QDebug>                // for QDebug
#include <QJSEngine>             // for qjsEngine, QJSEngine
#include <QMessageLogger>        // for qWarning
#include <QModelIndex>           // for QModelIndex
#include <QtCore>                // for QTypeInfo<>::isValueInitializationBi...
---


/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/tableproxymodel.h should add these lines:
#include <qqmlintegration.h>      // for QML_ELEMENT
#include <qtmetamacros.h>         // for Q_INVOKABLE, Q_PROPERTY, Q_OBJECT
#include <stddef.h>               // for size_t
#include <QAbstractItemModel>     // for QAbstractItemModel
#include <QByteArray>             // for QByteArray, QTypeInfo<>::isRelocatable
#include <QItemSelection>         // for QItemSelection
#include <QList>                  // for QList
#include <QString>                // for QString
#include <QVariant>               // for QVariant
#include <QtCore>                 // for SortOrder, QHash, ItemDataRole, QTy...

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/tableproxymodel.h should remove these lines:
- #include <QQmlEngine>  // lines 22-22
- #include <QTimer>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/tableproxymodel.h:
#include <qqmlintegration.h>      // for QML_ELEMENT
#include <qtmetamacros.h>         // for Q_INVOKABLE, Q_PROPERTY, Q_OBJECT
#include <stddef.h>               // for size_t
#include <QAbstractItemModel>     // for QAbstractItemModel
#include <QByteArray>             // for QByteArray, QTypeInfo<>::isRelocatable
#include <QItemSelection>         // for QItemSelection
#include <QItemSelectionRange>    // for QItemSelectionRange
#include <QList>                  // for QList
#include <QSortFilterProxyModel>  // for QSortFilterProxyModel
#include <QStandardItemModel>     // for QStandardItemModel
#include <QString>                // for QString
#include <QStringList>            // for QStringList
#include <QVariant>               // for QVariant
#include <QtCore>                 // for SortOrder, QHash, ItemDataRole, QTy...
#include <deque>                  // for deque
#include <map>                    // for map
#include <unordered_set>          // for unordered_set
#include <utility>                // for pair
#include <vector>                 // for vector
---

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/tableproxymodel.cpp should add these lines:
#include <qassert.h>                                 // for Q_ASSERT
#include <qtypes.h>                                  // for qsizetype
#include <QAbstractProxyModel>                       // for QAbstractProxyModel
#include <QMetaType>                                 // for QMetaType
#include <QModelIndex>                               // for QModelIndex
#include <QPersistentModelIndex>                     // for QPersistentModel...
#include <QStandardItem>                             // for QStandardItem
#include <Qt>                                        // for SortOrder, ItemD...
#include <algorithm>                                 // for max, copy, find_if

/home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/tableproxymodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/qml/app/graphia/Utils/tableproxymodel.cpp:
#include "tableproxymodel.h"
#include <qassert.h>                                 // for Q_ASSERT
#include <qtypes.h>                                  // for qsizetype
#include <QAbstractProxyModel>                       // for QAbstractProxyModel
#include <QMetaType>                                 // for QMetaType
#include <QModelIndex>                               // for QModelIndex
#include <QPersistentModelIndex>                     // for QPersistentModel...
#include <QStandardItem>                             // for QStandardItem
#include <Qt>                                        // for SortOrder, ItemD...
#include <algorithm>                                 // for max, copy, find_if
#include "shared/plugins/nodeattributetablemodel.h"  // for NodeAttributeTab...
#include "shared/utils/container.h"                  // for contains, setInt...
#include "shared/utils/string.h"                     // for numericCompare
---


/home/runner/work/graphia/graphia/source/messagebox/main.cpp should add these lines:
#include <QCommandLineOption>  // for QCommandLineOption
#include <QList>               // for QList
#include <QObject>             // for QObject
#include <QString>             // for QString, operator""_s, QTypeInfo<>::is...
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QTypeInfo>           // for QTypeInfo<>::isRelocatable

/home/runner/work/graphia/graphia/source/messagebox/main.cpp should remove these lines:
- #include <QAbstractButton>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/messagebox/main.cpp:
#include <QApplication>        // for QApplication
#include <QCommandLineOption>  // for QCommandLineOption
#include <QCommandLineParser>  // for QCommandLineParser
#include <QCoreApplication>    // for QCoreApplication
#include <QHash>               // for QHash
#include <QIcon>               // for QIcon
#include <QList>               // for QList
#include <QMessageBox>         // for QMessageBox
#include <QObject>             // for QObject
#include <QString>             // for QString, operator""_s, QTypeInfo<>::is...
#include <QStringList>         // for QStringList
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QTypeInfo>           // for QTypeInfo<>::isRelocatable
#include "build_defines.h"     // for VERSION
---


/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should add these lines:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QSurfaceFormat>             // for QSurfaceFormat

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should remove these lines:
- #include <memory>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QOpenGLFunctions_3_3_Core>  // for QOpenGLFunctions_3_3_Core
#include <QString>                    // for QString
#include <QSurfaceFormat>             // for QSurfaceFormat
---

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should add these lines:
#include <qassert.h>              // for Q_ASSERT
#include <QByteArrayDataPtr>      // for QByteArrayLiteral
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp:
#include "openglfunctions.h"
#include <qassert.h>              // for Q_ASSERT
#include <QByteArrayDataPtr>      // for QByteArrayLiteral
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <QOffscreenSurface>      // for QOffscreenSurface
#include <QOpenGLContext>         // for QOpenGLContext
#include <QOpenGLExtraFunctions>  // for QOpenGLExtraFunctions
#include <QSurfaceFormat>         // for QSurfaceFormat
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair
---


/home/runner/work/graphia/graphia/source/crashreporter/main.cpp should add these lines:
#include <bits/chrono.h>                                   // for operator""min
#include <google_breakpad/processor/code_module.h>         // for CodeModule
#include <google_breakpad/processor/process_result.h>      // for ProcessResult
#include <qassert.h>                                       // for Q_ASSERT
#include <stddef.h>                                        // for size_t
#include <QByteArray>                                      // for QByteArray
#include <QCommandLineOption>                              // for QCommandLi...
#include <QCoreApplication>                                // for QCoreAppli...
#include <QEventLoop>                                      // for QEventLoop
#include <QFile>                                           // for QFile
#include <QHttpPart>                                       // for QHttpPart
#include <QIODevice>                                       // for QIODevice
#include <QList>                                           // for QList
#include <QMetaObject>                                     // for QMetaObject
#include <QObject>                                         // for QObject
#include <QString>                                         // for QString
#include <QStringLiteral>                                  // for qMakeStrin...
#include <QVariant>                                        // for QVariant
#include <algorithm>                                       // for any_of
#include <utility>                                         // for pair
#include <vector>                                          // for vector

/home/runner/work/graphia/graphia/source/crashreporter/main.cpp should remove these lines:
- #include <QCryptographicHash>  // lines 33-33
- #include <QDebug>  // lines 34-34
- #include <chrono>  // lines 44-44

The full include-list for /home/runner/work/graphia/graphia/source/crashreporter/main.cpp:
#include <bits/chrono.h>                                   // for operator""min
#include <google_breakpad/processor/call_stack.h>          // for CallStack
#include <google_breakpad/processor/code_module.h>         // for CodeModule
#include <google_breakpad/processor/minidump.h>            // for Minidump
#include <google_breakpad/processor/minidump_processor.h>  // for MinidumpPr...
#include <google_breakpad/processor/process_result.h>      // for ProcessResult
#include <google_breakpad/processor/process_state.h>       // for ProcessState
#include <google_breakpad/processor/stack_frame.h>         // for StackFrame
#include <processor/pathname_stripper.h>                   // for PathnameSt...
#include <qassert.h>                                       // for Q_ASSERT
#include <stddef.h>                                        // for size_t
#include <QApplication>                                    // for QApplication
#include <QByteArray>                                      // for QByteArray
#include <QCommandLineOption>                              // for QCommandLi...
#include <QCommandLineParser>                              // for QCommandLi...
#include <QCoreApplication>                                // for QCoreAppli...
#include <QDirIterator>                                    // for QDirIterator
#include <QEventLoop>                                      // for QEventLoop
#include <QFile>                                           // for QFile
#include <QFileInfo>                                       // for QFileInfo
#include <QHttpMultiPart>                                  // for QHttpMulti...
#include <QHttpPart>                                       // for QHttpPart
#include <QIODevice>                                       // for QIODevice
#include <QIcon>                                           // for QIcon
#include <QList>                                           // for QList
#include <QMessageBox>                                     // for QMessageBox
#include <QMetaObject>                                     // for QMetaObject
#include <QNetworkAccessManager>                           // for QNetworkAc...
#include <QNetworkReply>                                   // for QNetworkReply
#include <QNetworkRequest>                                 // for QNetworkRe...
#include <QObject>                                         // for QObject
#include <QQmlApplicationEngine>                           // for QQmlApplic...
#include <QQmlContext>                                     // for QQmlContext
#include <QQuickStyle>                                     // for QQuickStyle
#include <QString>                                         // for QString
#include <QStringLiteral>                                  // for qMakeStrin...
#include <QSysInfo>                                        // for QSysInfo
#include <QTimer>                                          // for QTimer
#include <QUrl>                                            // for QUrl
#include <QVariant>                                        // for QVariant
#include <algorithm>                                       // for any_of
#include <iostream>                                        // for operator<<
#include <map>                                             // for map, opera...
#include <regex>                                           // for regex_match
#include <string>                                          // for allocator
#include <utility>                                         // for pair
#include <vector>                                          // for vector
#include "app/rendering/openglfunctions.h"                 // for OpenGLFunc...
#include "build_defines.h"                                 // for GIT_BRANCH
#include "report.h"                                        // for Report
#include "shared/utils/preferences.h"                      // for getPref
#include "shared/utils/static_block.h"                     // for execute_st...
---


/home/runner/work/graphia/graphia/source/updater/editor/main.cpp should add these lines:
#include <qassert.h>                    // for Q_ASSERT
#include <QCoreApplication>             // for QCoreApplication
#include <QList>                        // for QList
#include <QStringLiteral>               // for qMakeStringPrivate, QStringLi...
#include <QVariant>                     // for QVariant

/home/runner/work/graphia/graphia/source/updater/editor/main.cpp should remove these lines:
- #include <json_helper.h>  // lines 32-32
- #include <QUrl>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/updater/editor/main.cpp:
#include <qassert.h>                    // for Q_ASSERT
#include <QApplication>                 // for QApplication
#include <QCoreApplication>             // for QCoreApplication
#include <QIcon>                        // for QIcon
#include <QList>                        // for QList
#include <QQmlApplicationEngine>        // for QQmlApplicationEngine
#include <QQuickStyle>                  // for QQuickStyle
#include <QSettings>                    // for QSettings
#include <QString>                      // for operator""_s, QAnyStringView:...
#include <QStringLiteral>               // for qMakeStringPrivate, QStringLi...
#include <QVariant>                     // for QVariant
#include "build_defines.h"              // for VERSION
#include "shared/utils/preferences.h"   // for getPref
#include "shared/utils/static_block.h"  // for execute_static_blocks
---


/home/runner/work/graphia/graphia/source/updater/installer.h should add these lines:
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/updater/installer.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/updater/installer.h:
#include <json_helper.h>   // for json
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QProcess>        // for QProcess
#include <QString>         // for QString
---

/home/runner/work/graphia/graphia/source/updater/installer.cpp should add these lines:
#include <qoverload.h>                 // for QOverload
#include <QByteArray>                  // for operator+, QByteArray
#include <QList>                       // for QList
#include <QStringList>                 // for QStringList
#include <QtCore>                      // for Q_OS_UNIX

/home/runner/work/graphia/graphia/source/updater/installer.cpp should remove these lines:
- #include <QFutureWatcher>  // lines 29-29
- #include <iostream>  // lines 31-31
- #include "shared/utils/scope_exit.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/updater/installer.cpp:
#include "installer.h"
#include <qoverload.h>                 // for QOverload
#include <QByteArray>                  // for operator+, QByteArray
#include <QFile>                       // for QFile
#include <QList>                       // for QList
#include <QString>                     // for QString, operator!=, operator""_s
#include <QStringList>                 // for QStringList
#include <QtCore>                      // for Q_OS_UNIX
#include "shared/updates/updates.h"    // for fullyQualifiedInstallerFileName
#include "shared/utils/checksum.h"     // for sha256ChecksumMatchesFile
#include "shared/utils/container.h"    // for contains
#include "shared/utils/doasyncthen.h"  // for doAsync, _Then
---


/home/runner/work/graphia/graphia/source/updater/main.cpp should add these lines:
#include <qassert.h>                                  // for Q_ASSERT
#include <qtenvironmentvariables.h>                   // for qEnvironmentVar...
#include <qtresource.h>                               // for Q_INIT_RESOURCE
#include <QByteArray>                                 // for QByteArray
#include <QFile>                                      // for QFile
#include <QIODevice>                                  // for QIODevice
#include <QList>                                      // for QList
#include <QObject>                                    // for QObject
#include <QString>                                    // for QString, operat...
#include <QStringList>                                // for QStringList
#include <QStringLiteral>                             // for qMakeStringPrivate
#include <QVariant>                                   // for QVariant
#include <QtCore>                                     // for Q_OS_LINUX
#include <json.hpp>                                   // for basic_json, ite...
#include <string>                                     // for operator<<

/home/runner/work/graphia/graphia/source/updater/main.cpp should remove these lines:
- #include <QDebug>  // lines 41-41

The full include-list for /home/runner/work/graphia/graphia/source/updater/main.cpp:
#include <qassert.h>                                  // for Q_ASSERT
#include <qtenvironmentvariables.h>                   // for qEnvironmentVar...
#include <qtresource.h>                               // for Q_INIT_RESOURCE
#include <qtsingleapplication/qtsingleapplication.h>  // for QtSingleApplica...
#include <QApplication>                               // for QApplication
#include <QByteArray>                                 // for QByteArray
#include <QDir>                                       // for QDir
#include <QFile>                                      // for QFile
#include <QFileInfo>                                  // for QFileInfo
#include <QIODevice>                                  // for QIODevice
#include <QIcon>                                      // for QIcon
#include <QList>                                      // for QList
#include <QObject>                                    // for QObject
#include <QProcess>                                   // for QProcess
#include <QQmlApplicationEngine>                      // for QQmlApplication...
#include <QQmlContext>                                // for QQmlContext
#include <QQuickStyle>                                // for QQuickStyle
#include <QRegularExpression>                         // for QRegularExpression
#include <QStandardPaths>                             // for QStandardPaths
#include <QString>                                    // for QString, operat...
#include <QStringList>                                // for QStringList
#include <QStringLiteral>                             // for qMakeStringPrivate
#include <QTemporaryDir>                              // for QTemporaryDir
#include <QVariant>                                   // for QVariant
#include <QtCore>                                     // for Q_OS_LINUX
#include <iostream>                                   // for char_traits
#include <json.hpp>                                   // for basic_json, ite...
#include <string>                                     // for operator<<
#include "build_defines.h"                            // for VERSION
#include "installer.h"                                // for Installer
#include "shared/updates/updates.h"                   // for latestUpdateJson
#include "shared/utils/consolecapture.h"              // for captureConsoleO...
#include "shared/utils/container.h"                   // for contains
#include "shared/utils/preferences.h"                 // for getPref
#include "shared/utils/static_block.h"                // for execute_static_...
---