{
  "$schema": "https://farmslot.io/schemas/recipe-v1.schema.json",
  "title": "Mobile multi-network asset visibility",
  "description": "Proves funded assets from multiple protocol families are visible together in the opaque Mobile wallet.",
  "paramsSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "symbols": {
        "type": "array",
        "items": { "type": "string" },
        "default": ["ETH", "SOL"]
      },
      "minimum_asset_count": {
        "type": "integer",
        "minimum": 2,
        "default": 2
      },
      "timeout_ms": {
        "type": "integer",
        "minimum": 1000,
        "default": 45000
      }
    }
  },
  "workflow": {
    "entry": "open-wallet",
    "nodes": {
      "open-wallet": {
        "action": "ui.navigate",
        "page": "home",
        "timeout_ms": "{{params.timeout_ms}}",
        "intent": "Open the aggregate Mobile wallet token list",
        "next": "assert-multichain-assets"
      },
      "assert-multichain-assets": {
        "action": "metamask.assets.read_visible_state",
        "require_symbols": "{{params.symbols}}",
        "minimum_asset_count": "{{params.minimum_asset_count}}",
        "require_fiat": true,
        "max_items": 100,
        "intent": "Prove assets from the requested protocol families are simultaneously visible",
        "next": "capture-wallet"
      },
      "capture-wallet": {
        "action": "ui.screenshot",
        "path": "screenshots/mobile-multichain-assets.png",
        "label": "Mobile multi-network asset visibility",
        "intent": "Preserve reviewer-visible proof of aggregate multi-network holdings",
        "next": "done"
      },
      "done": {
        "action": "end",
        "status": "pass"
      }
    }
  }
}
