While the switch to libasynql and await-generator is not finished yet, it already resulted in a mess of certain methods, behaviours and return types.
This made fancy methods like BasePlot::toPlot() : ?Plot incredibly awkward (BasePlot::toSyncPlot() : ?Plot and BasePlot::toAsyncPlot() : \Generator). This is also a problem since those parts of the plugin were meant to be part of the API, which other plugins can interact with, but with such a mess, they are difficult for plugin devs to even understand.
With the introduction of the CPlotAPI class and the upcoming removal of methods like BasePlot::toSyncPlot() : ?Plot or Plot::loadFromPositionIntoCache() : Plot|BasePlot|null, this will be resolved.
While the switch to libasynql and await-generator is not finished yet, it already resulted in a mess of certain methods, behaviours and return types. This made fancy methods like
BasePlot::toPlot() : ?Plot
incredibly awkward (BasePlot::toSyncPlot() : ?Plot
andBasePlot::toAsyncPlot() : \Generator
). This is also a problem since those parts of the plugin were meant to be part of the API, which other plugins can interact with, but with such a mess, they are difficult for plugin devs to even understand.