History
The previous pre-1.0 releases of GeoInterface.jl were smaller in scope, aligned to geointerface in Python [1] which builds on GeoJSON [2]. It provided abstract types and expected other geometries to be implemented as a subtype. Recent Julia developments have shown that subtyping is difficult—you can only choose one supertype—and many packages moved to trait-based interfaces. Tables.jl is an excellent example of traits-based interface.