NIKE product services may represent a product configuration as a deeply nested JSON-like structure. Write a function that flattens the structure into a single-level mapping whose keys describe each value's path.
Use dot-separated path keys. For arrays, use the zero-based index as the next path segment. Store only scalar values and non-empty container contents. If a nested dictionary or list is empty, store that empty container as a value. The root input is always a dictionary.
Implement flatten_object(obj), where obj is a JSON-like dictionary containing dictionaries, lists, strings, numbers, booleans, or None. Return a dictionary mapping strings to scalar values or empty dictionaries/lists. Avoid recursion so the function can handle very deep structures.
def flatten_object(obj):