As mentioned at https://www.chiefdelphi.com/t/magicbot-component-initialization-vs-execution-order/470604, you can have situations where the high level component needs something from a lower level component at setup/__init__ but it hasn't been initialized yet.
It should be pretty easy to create a DAG from dependent components and toposort them to determine the correct order of initialization such that dependent components are always initialized first.
As mentioned at https://www.chiefdelphi.com/t/magicbot-component-initialization-vs-execution-order/470604, you can have situations where the high level component needs something from a lower level component at
setup/__init__but it hasn't been initialized yet.It should be pretty easy to create a DAG from dependent components and toposort them to determine the correct order of initialization such that dependent components are always initialized first.