Build an app from scratch, and explain how you would use documentation and references to implement the required features.
For this coding exercise, represent each feature by a name and each documentation reference by the prerequisite features it identifies. Return an order in which all features can be implemented, or an empty list if the references contain a circular dependency.
Input/output contract: features is a list of unique strings. references is a dictionary mapping each feature to a list of prerequisite feature names. Implement build_app_plan(features, references) and return a list of feature names.
def build_app_plan(features, references):