  PHOEBE 2 is a Python package for modeling the observables of eclipsing star
systems, but until now has focused entirely on the forward-model -- that is,
generating a synthetic model given fixed values of a large number of parameters
describing the system and the observations. The inverse problem, obtaining
orbital and stellar parameters given observational data, is more complicated
and computationally expensive as it requires generating a large set of
forward-models to determine which set of parameters and uncertainties best
represent the available observational data. The process of determining the best
solution and also of obtaining reliable and robust uncertainties on those
parameters often requires the use of multiple algorithms, including both
optimizers and samplers. Furthermore, the forward-model of PHOEBE has been
designed to be as physically robust as possible, but is computationally
expensive compared to other codes. It is useful, therefore, to use whichever
code is most efficient given the reasonable assumptions for a specific system,
but learning the intricacies of multiple codes presents a barrier to doing this
in practice. Here we present the 2.3 release of PHOEBE (publicly available from
http://phoebe-project.org) which introduces a general framework for defining
and handling distributions on parameters, and utilizing multiple different
estimation, optimization, and sampling algorithms. The presented framework
supports multiple forward-models, including the robust model built into PHOEBE
itself.
