if recursive:
                v = v if not hasattr(v, 'to_serializable') else v.to_serializable(level + 1, all_properties_flag)
                v = v if isinstance(v, (float, int, list, dict, type(None))) else str(v)