import json

file_path = 'workflows/Binance Altcoin Price Logger.json'
with open(file_path, 'r', encoding='utf-8') as f:
    data = json.load(f)

# n8n workflows often expect a specific top-level structure.
# If it's just a dictionary of nodes and connections, it might need to be 
# wrapped in a specific way or it might be missing mandatory fields.

print(f"Top level keys: {list(data.keys())}")

# Check for mandatory fields in a standard n8n export
mandatory = ['nodes', 'connections']
for m in mandatory:
    if m not in data:
        print(f"❌ Missing mandatory top-level key: {m}")

# Audit Connections carefully
connections = data.get('connections', {})
for node_name, outputs in connections.items():
    # 'main' must be a list of lists
    if 'main' not in outputs:
        print(f"❌ Node '{node_name}' connection missing 'main' key")
        continue
    
    main = outputs['main']
    if not isinstance(main, list):
        print(f"❌ Node '{node_name}' 'main' is not a list: {type(main)}")
        continue
    
    for i, branch in enumerate(main):
        if not isinstance(branch, list):
            print(f"❌ Node '{node_name}' branch {i} is not a list: {type(branch)}")
            continue
        
        for item in branch:
            if not isinstance(item, dict) or 'node' not in item:
                print(f"❌ Node '{node_name}' branch {i} item is malformed: {item}")

