Vyper struct ABI encoding vs Solidity caller interoperability
Goal I need a Vyper external function to return a struct that a Solidity caller decodes with abi.decode on a live chain. Tests may pass locally when both contracts are compiled with the same Vyper version, but production uses a Solidity consumer. Constraints Vyper 0.2.x and 0.3.x encode structs in a tightly packed format that omits padding between elements.