Question: Can separately built FS and MIME layer packages return and transform the base package's PyO3 Operator with and without capsules?
Observed result:
Operator type.stat succeed after the operator crosses into the base package, proving that the service-local runtime layer and executor enter the FS package's Tokio context for these operations.hello.txt from no content type to text/plain.opendal_poc.Operator, but its Python type object differs from the base package's type object.Operator object is not an instance of Operator.Conclusion: ordinary Rust dependency reuse does not share a PyO3 class between independently linked extensions. A capsule can preserve the base Python class interface, but this prototype's capsule payload is still a Rust Operator and therefore requires an exact build. A production capsule should carry a versioned function table or another explicitly validated ownership contract instead of treating the Rust layout as stable.
Known limit: the runtime-switch layer covers service methods, readers, writers, and the executor used by this experiment. A production implementation must also wrap returned listers, deleters, and copiers.