See SciML/SciMLBase.jl#1160. We need to dispatch on the abstract interface in order to omit it from differentiation detection, but generally it's nice to have the highest level abstract interfaces well-defined anyways. In this case we don't even need any guarantee of fields or behaviors just existence