GWCS takes a general approach to WCS. It supports a data model which includes the entire transformation pipeline from input coordinates (detector by default) to world coordinates. Transformations can be chained, joined or combined with arithmetic operators using the flexible framework of compound models in astropy modeling. In the case of a celestial output frame coordinates provides further transformations between standard coordinate frames. Spectral output coordinates are instances of astropy Quantity and are transformed to other units with the tools in that package.