For petab version 2, we will have to rewrite a large part of the current functionality, which gives us the opportunity to rethink the API. For v2, @dilpath and I would like to change the DataFrame based API to a proper object model (e.g., instead of observable_df: pd.DataFrame, we'd have observables: list[Observable]).
This will greatly simplify validation and dealing with default values as well setting proper data types.