Architecture as LEGO: How we used async-trait and Arc<dyn Trait> to abstract Solana for millisecond unit tests