Currently foo will start as soon as init as been started. But if init takes some time to execute, foo can be started before init is done which is not the expected behavior since you ask to run after init and init is a oneshot.
So I think when a dependency has the oneshot: true, zinit should wait for it to done before starting the dependent services
Given 2 services like init.yaml:
foo.yaml
Currently foo will start as soon as init as been started. But if init takes some time to execute, foo can be started before init is done which is not the expected behavior since you ask to run after init and init is a oneshot. So I think when a dependency has the oneshot: true, zinit should wait for it to done before starting the dependent services